============前提加入jar包jxl.jar=========================

// 从数据库导出数据到excel
 public List<Xskh> outPutExcel() {

String url= request.getSession().getServletContext()
     .getRealPath("/")
     + "upload/"; // 创建文件

File dirPath = new File(ctxPath);
   if (!dirPath.exists()) {
    dirPath.mkdir();// 创建文件夹
   }

List<Xskh> list = excelDao.getInfo(" select x from Xskh  ");// 查询数据库导出资料
  try {

WritableSheet sheet = null;
   // 创建excel文件
   WritableWorkbook book = Workbook.createWorkbook(new File(url+"data.xls"));
   // 生成名为“第一页”的工作表,参数0表示这是第一页
   sheet = book.createSheet(" 第一页 ", 0);

// 设置行宽、高
   sheet.getSettings().setDefaultColumnWidth(20);
   sheet.getSettings().setDefaultRowHeight(480);

// 设置字体
   WritableFont font = new WritableFont(WritableFont.ARIAL, 12,
     WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
     Colour.RED);
   WritableCellFormat wcfF = new WritableCellFormat(font);

// 字体居中
   wcfF.setVerticalAlignment(VerticalAlignment.CENTRE);
   // 自动换行
   wcfF.setWrap(true);

// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
   // 以及单元格内容为test
   Label label = new Label(0, 0, "简称 ", wcfF);
   // 将定义好的单元格添加到工作表中
   sheet.addCell(label);
   Label labelcomplay = new Label(1, 0, "公司", wcfF);
   sheet.addCell(labelcomplay);

Label labeltel = new Label(2, 0, "固定电话", wcfF);
   sheet.addCell(labeltel);

Label labelmobile = new Label(3, 0, "移动电话", wcfF);
   sheet.addCell(labelmobile);

Label labelfax = new Label(4, 0, "传真", wcfF);
   sheet.addCell(labelfax);
   Label labeladdr = new Label(5, 0, "地址", wcfF);
   sheet.addCell(labeladdr);
   Label labelsite = new Label(6, 0, "网址", wcfF);
   sheet.addCell(labelsite);

Label labelmail = new Label(7, 0, "邮箱", wcfF);
   sheet.addCell(labelmail);
   Label qq = new Label(8, 0, "qq", wcfF);
   sheet.addCell(qq);
   Label people = new Label(9, 0, "联系人", wcfF);
   sheet.addCell(people);

Label linkbm = new Label(10, 0, "联系人部门", wcfF);
   sheet.addCell(linkbm);
   Label linkejob = new Label(11, 0, "联系人职务", wcfF);
   sheet.addCell(linkejob);
   Label linkphone = new Label(12, 0, "联系人电话", wcfF);
   sheet.addCell(linkphone);

// 所有资料
   for (int i = 0; i < list.size(); i++) {

Label labelad = new Label(0, i + 1, list.get(i).getName());
    sheet.addCell(labelad);
    Label labelmail2 = new Label(1, i + 1, list.get(i).getCompany());
    sheet.addCell(labelmail2);

Label tel = new Label(2, i + 1, list.get(i).getTelephone());
    sheet.addCell(tel);
    Label mobile = new Label(3, i + 1, list.get(i).getMobile());
    sheet.addCell(mobile);
    Label fax = new Label(4, i + 1, list.get(i).getFax());
    sheet.addCell(fax);
    Label addr = new Label(5, i + 1, list.get(i).getAddress());
    sheet.addCell(addr);
    Label site = new Label(6, i + 1, list.get(i).getWww());
    sheet.addCell(site);
    Label mail = new Label(7, i + 1, list.get(i).getEmail());
    sheet.addCell(mail);
    Label q = new Label(8, i + 1, list.get(i).getQq());
    sheet.addCell(q);
    Label peo = new Label(9, i + 1, list.get(i).getLikeme());
    sheet.addCell(peo);
    Label bm = new Label(10, i + 1, list.get(i).getKfPeoBm());
    sheet.addCell(bm);
    Label zw = new Label(11, i + 1, list.get(i).getKfPeoZhiwei());
    sheet.addCell(zw);
    Label linktel = new Label(12, i + 1, list.get(i).getKfPeoTel());
    sheet.addCell(linktel);//创建excel

}

// 写入数据并关闭文件
   book.write();
   book.close();

  String result = download(request, response, url+ "/data.xls", "data.xls");//下载的方法
   if ("unexists".equals(result)) {
    request.setAttribute("msg", "抱歉,文件不存在,请重新导入文件!");
   } else if ("error".equals(result)) {
    request.setAttribute("msg", "抱歉,当前服务器用户过多,请稍后再试!");
   } else {
    request.setAttribute("msg", "数据导出成功!");

}

} catch (Exception e) {
   e.printStackTrace();
   return null;

}
  return list;
 }

---------------------下载的方法------------------

public  String download(HttpServletRequest request,
   HttpServletResponse response, String urlandfile, String fileName)
   throws Exception {
  String msg = null;
  try {
   response.setCharacterEncoding("UTF-8");
   response.setContentType("text/html");
   javax.servlet.ServletOutputStream ou = response.getOutputStream();
   // 路径
   java.io.File file = new java.io.File(urlandfile);

if (!file.exists()) {
    System.out.println(file.getAbsolutePath() + " 文件不能存在!");
    msg = "unexists";
    return msg;
   }

// 读取文件流
   java.io.FileInputStream fileInputStream = new java.io.FileInputStream(
     file);

// 下载文件
   // 设置响应头和下载保存的文件名

response.setContentType("application/x-msdownload");// 弹出下载的框

response.setContentLength((int) file.length());// 下载统计文件大小的进度
   response.setHeader("Content-Disposition", "attachment; filename="
     + fileName);
   // 下载框的信息
   if (fileInputStream != null) {
    int filelen = fileInputStream.available();
    // 文件太大时内存不能一次读出,要循环

byte a[] = new byte[filelen];

fileInputStream.read(a);

ou.write(a);
   }
   fileInputStream.close();

ou.close();

msg = "success";
  } catch (Exception e) {
   e.printStackTrace();
   msg = "error";

}
  // 解决完成后使用一切正常,但是总抛出java.lang.IllegalStateException异常主要是流还存在
  return msg;
 }

转载于:https://www.cnblogs.com/qgc88/p/3342546.html

java 对excel操作 读取、写入、修改数据;导出数据库数据到excel相关推荐

  1. java 读取dwg_jdwglib java dwg文件的读取,写入开发包. dwg使用当前 常方便,测试代码和jar都有 CAD 247万源代码下载- www.pudn.com...

    文件名称: jdwglib下载  收藏√  [ 5  4  3  2  1 ] 所属分类: CAD 开发工具: Java 文件大小: 608 KB 上传时间: 2015-12-08 下载次数: 0 提 ...

  2. springboot+mybatis+sqlserver导出数据库数据并实现下载到excel

    springboot+mybatis+sqlserver导出数据库数据并实现下载到excel 1.准备工作 1.1 下载一个springboot框架demo 1.2 配置maven 1.3 引入需要的 ...

  3. python数据导出excel_【python Excel】如何使用python将大量数据导出到Excel中的小技巧之一...

    如何使用python将大量数据导出到Excel中的小技巧 (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢 ...

  4. mysql导出数据库数据及表结构

    mysql导出数据库数据及表结构 1,导出远程数据库数据到本地 mysql -A wj_sms -h192.168.1.105 -uroot -p4321 -ss -e "set NAMES ...

  5. python如何导出数据库数据库_python导出数据库数据的方法

    python导出数据库数据的方法 发布时间:2020-06-26 14:09:43 来源:亿速云 阅读:138 这篇文章运用简单易懂的例子给大家介绍python导出数据库数据的方法,代码非常详细,感兴 ...

  6. R语言数据导出(数据保存、导出、持久化到本地指定目录文件)、使用foreign包的write.dta函数将dataframe导出为Stata格式dta文件

    R语言数据导出(数据保存.导出.持久化到本地指定目录文件).使用foreign包的write.dta函数将dataframe导出为Stata格式dta文件 目录

  7. R语言数据导出(数据保存、导出、持久化到本地指定目录文件)、保存为txt、csv、tsv、xls、xlsx、dta、sas、sps格式文件

    R语言数据导出(数据保存.导出.持久化到本地指定目录文件).保存为txt.csv.tsv.xls.xlsx.dta.sas.sps格式文件 目录

  8. 2.Java Excel操作读取合并单元格

    /*** 初始化要和表列匹配的数组* @param filePath String* */void tableInit(){dataHeader = new String[]{"顺序号&qu ...

  9. Day020 - pdf合并与excel/csv读取写入

    PDF文件操作 导入三方库 import PyPDF2 读取操作 以读的方式打开pdf文件获取pdf文件对象 pdf1 = PyPDF2.PdfFileReader('被打开的pdf文件路径') 获取 ...

最新文章

  1. 让div margin属性消失_margin 和 padding
  2. JetBrains放出Java代码质量检查工具Qodana,不了解一下?
  3. linux防火墙 限制端口,Linux开启防火墙并限制开放端口
  4. 第21天学习Java的笔记-数学工具类Arrays,Math
  5. java putall实现,Java EnumMap putAll()
  6. GF(2^8)上的多项式乘法(Matlab实现)
  7. react的一些思考
  8. Equipment download - No data contained in BDoc
  9. python脚本限制_解决python 上传图片限制格式问题
  10. Oracle 存储过程调用语句
  11. centos7学习笔记-安装配置apache
  12. 分子动力学模拟的主要步骤
  13. Docker 管理之 --- 资源限制
  14. ppt编辑数据链接文件不可用_excel表格编辑数据不可用-ppt插入的自带图表点击编辑数据时显示链接文件不可用...
  15. Improved Zero-shot Neural Machine Translation via Ignoring Spurious Correlations
  16. ppt太大怎么变小,ppt如何压缩变小
  17. 解决国外资源下载速度过慢的问题
  18. 【学习笔记】斯坦福大学公开课(机器学习) 之生成学习算法:朴素贝叶斯
  19. 【LeetCode】马三来刷题之Valid Anagram
  20. 神经网络建模的基本思想,建模方法神经网络设计

热门文章

  1. 如何让人大致理解RxJava思想:第一节 初步理解RxJava
  2. Dagger依赖注入注解的具体作用
  3. 高效管理 Elasticsearch 中基于时间的索引——本质是在利用滚动模式做数据的冷热分离,热索引可以用ssd...
  4. Hadoop之父Doug Cutting:Lucene到Hadoop的开源之路
  5. ycsb两个阶段说明
  6. CSS样式:position: absolute
  7. 安装docker和docker-compose
  8. C++ Stack 与String
  9. ActiveMQ消息队列的使用及应用
  10. python函数之各种器