摘要:今天做了一个关于生成表的功能有两种方式第一个不算太了解,第二个是出自的标准,虽然我两个都使用了,但比较偏向第二个就功能性而言,第一个比较灵活,但结构略简单,无法从数据库中大规模的生成或者是我不知道第二个比较全面,但太过庞大第一个代码打开
今天做了一个关于Java生成Excel表的功能
有两种方式:1、jxl.jar 2、poi-3.7-20101029.jar
第一个不算太了解,第二个是出自apache的标准,虽然我两个都使用了,但比较偏向第二个;
就功能性而言,第一个比较灵活,但结构略简单,无法从数据库中大规模的生成(或者是我不知道);第二个比较全面,但太过庞大
第一个代码:
// 打开文件 WritableWorkbook book = Workbook.createWorkbook(new File("test.xls")); // 生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet sheet = book.createSheet("第一页" , 0 ); // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0) // 以及单元格内容为test Label label = new Label( 0 , 0 , "test" ); // 将定义好的单元格添加到工作表中 sheet.addCell(label); /**/ /* * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123 */ jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 ); sheet.addCell(number); // 写入数据并关闭文件 book.write(); book.close();
第二个代码:
Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); conn = (Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","1234"); // 11:创建一个excel HSSFWorkbook book = new HSSFWorkbook(); // 1:分析数据 java.sql.DatabaseMetaData dmd = conn.getMetaData(); // 2:获取所有表名 java.sql.ResultSet rs = dmd.getTables("", "TEST", "STUDENTS", new String[] {"TABLE"}); Listtables = new ArrayList (); while (rs.next()) { String tn = rs.getString("TABLE_NAME"); tables.add(tn); } int table_len = tables.size(); // 3:声明st Statement st = conn.createStatement(); int idx = 0; for (String tn : tables) { System.err.println("表:" + tn); idx++; System.err.println("-------正在导----" + idx + "/" + table_len); // 12:创建sheet HSSFSheet sheet = book.createSheet(tn); String sql = "select * from " + tn; rs = st.executeQuery(sql); // 3:rsmd ResultSetMetaData rsmd = (ResultSetMetaData)rs.getMetaData(); // 4:分析一共多少列 int cols = rsmd.getColumnCount(); // 13:创建表头 HSSFRow row = sheet.createRow(0); for (int i = 0; i < cols; i++) { String cname = rsmd.getColumnName(i + 1); HSSFCell cell = row.createCell(i); cell.setCellValue(cname); // System.err.print(" "+cname); } // System.err.println(" "); // 显示数据 while (rs.next()) { // 14:保存数据 row = sheet.createRow(sheet.getLastRowNum() + 1); for (int i = 0; i < cols; i++) { HSSFCell cell = row.createCell(i); cell.setCellValue(rs.getString(i + 1)); // System.err.print(" "+rs.getString(i+1)); } // System.err.println(" "); } // System.err.println(" -------------------"); } book.write(new FileOutputStream("d:/aa.xls"));
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64080.html
时间:2017年07月06日星期四说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学源码:无学习源码:https://github.com/zccodere/s... 第一章:课程介绍 1-1 预备知识 基础知识 struts2框架(上传下载功能) xml解析技术(导入模板) JQuery EasyUI(前台美观) 课程目录 实现方式 定制导入模版 导入文件 导...
摘要:这是年的第篇文章,也是汪子熙公众号总共第篇原创文章。使用通过格式发送和文件到服务器关于格式的详细说明,参考开发社区和的文档我在前文例子的基础上稍作修改在里使用两个类型为的标签,分别上传和文件用来测试的本地文件,大小为字节。 这是 Jerry 2021 年的第 71 篇文章,也是汪子熙公众号总共第 348 篇原创文章。 Jerry 之前发布过一篇文章 不使用任何框架,手写纯 Jav...
摘要:是阿里巴巴对封装的一个库,号称解决了的问题,并且在使用上也更方便一些然而我在使用的时候发现还是有很多坑,其中一个比较头疼的是对单个单元格样式的设置。 EasyExcel是阿里巴巴对POI封装的一个库,号称解决了POI的OOM问题,并且在使用上也更方便一些Github:[](https://github.com/alibaba/ea... 然而我在使用的时候发现还是有很多坑,其中一个比...
摘要:消费之后,多线程处理文件导出,生成文件后上传到等文件服务器。前端直接查询并且展现对应的任务执行列表,去等文件服务器下载文件即可。这客户体验不友好,而且网络传输,系统占用多种问题。拓展阅读导出最佳实践框架 产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件。 需求分析 对于 excel 导出,是一个很常见的需求。 最常见的解决方案就是使用 poi 直接同步导出一个 exc...
摘要:这里我用的创建的项目,创建过程就不做累述了,直接操刀,开始把数据库的数据导成一个文件正式开始写这个创建一个类,这个类就是对进行操作,主要两个方法。 用SpringMVC生成一个Excel文件 通过Java来生成Excel文件或者导入一个Excel文件的数据都需要用到Apache的一个POI包,这里我就先把这个包提供出来。 org.apache.poi poi-ooxm...
阅读 2333·2021-11-18 10:07
阅读 2280·2021-09-22 15:59
阅读 3049·2021-08-23 09:42
阅读 2241·2019-08-30 15:44
阅读 1149·2019-08-29 15:06
阅读 2232·2019-08-29 13:27
阅读 1180·2019-08-29 13:21
阅读 1380·2019-08-29 13:13