- 浏览: 934755 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (383)
- JSP 自定义标签实现 (1)
- JSP (2)
- javascript (161)
- JAVA (100)
- HTML (26)
- jQuery (11)
- J2EE (1)
- Log4J (1)
- HTML5 (6)
- DB2 (2)
- Spring (14)
- 浏览器兼容 (1)
- JavaMail (1)
- JAVA(转载) (1)
- freemarker (1)
- 项目管理 (1)
- 项目架构学习 (1)
- Oracle (11)
- 开源项目 (2)
- 网络编程 (4)
- C (1)
- C++ (0)
- Xpath (1)
- 待写 (10)
- JXL (1)
- XML (1)
- JNDI (2)
- POI (8)
- Struts2 (3)
- 异常解决方法 (1)
- Sql Server (2)
- windows (2)
- SqlServer (1)
- 前端 (1)
- 正则表达式 (2)
- 浏览器兼容问题 (2)
- 转载 (25)
- css (11)
- svn (5)
- 工程构建 (1)
- 好用的网站 (1)
- sql (3)
- chrome V8 (1)
- javacript 报表 (1)
- FusionCharts (1)
- eclipse (2)
- tomcat (4)
- hibernate (2)
- 硬件 (1)
- 杂烩 (1)
- Linux (1)
- ubuntu (1)
- 设计模式 (2)
- 缓存 (1)
- 数据库 (1)
- JVM (2)
- DOM4j (1)
- 其他 (1)
- JACOB (1)
- extjs (3)
- ligerUi (1)
- 在线HTML编辑器 (1)
- API (1)
- OpenOffice (1)
- webservice (1)
- json (1)
- 百度map (1)
- NodeJs (1)
- greeplum jdbc spring (1)
- easyui (1)
- hightchart (1)
- 游戏 (1)
- HttpClient (1)
- 正则 (1)
- canvas (4)
- HTML5,javascript,canvas (0)
最新评论
-
changelo:
缺少了秦皇岛市
中国省,市,区 json数据 -
yurui829:
解析配置行那等号前后有可能有空格,改为如下比较好:String ...
java 读取.ini配置文件工具类 -
贝塔ZQ:
poi生成excel文档,感觉蛮复杂的,可以试试用pageof ...
POI生成excel带下拉 -
langke93:
我发现greenplum 通过jdbc insert性能很差, ...
jdbc 配置连接greeplum数据,spring配置连接greeplum数据(简单配置学习) -
zhutulang:
哪有收邮件???
Spring 邮件接收发送实例
package com.file; import java.io.File; import java.io.IOException; import java.util.Scanner; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.format.UnderlineStyle; import jxl.write.DateFormat; import jxl.write.DateTime; import jxl.write.Label; import jxl.write.NumberFormat; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; //操作Excel文件的类 public class OperatorExcel { public static String readExcel(File file) {// 读取Excel文件的内容 StringBuffer sb = new StringBuffer(); Workbook wb = null; try { wb = Workbook.getWorkbook(file);// 构造Workbook(工作薄)对象 } catch (Exception e) {// 捕获异常 e.printStackTrace(); } if (wb == null)// 判断(工作薄)对象是否为空 return null; Sheet[] sheet = wb.getSheets();// 创建Sheet(工作表)对象 if (sheet != null && sheet.length > 0) {// 工作表对象不为空 for (int i = 0; i < sheet.length; i++) {// 对每个工作表进行循环 int rowNum = sheet[i].getRows();// 得到当前工作表的行数 for (int j = 0; j < rowNum; j++) { Cell[] cells = sheet[i].getRow(j);// 得到当前行的所有单元格 if (cells != null && cells.length > 0) { for (int k = 0; k < cells.length; k++) {// 对每个单元格进行循环 String cellValue = cells[k].getContents();// 读取当前单元格的值 sb.append(cellValue + "\t"); } } sb.append("\r\n"); } sb.append("\r\n"); } } wb.close();// 最后关闭资源,释放内存 return sb.toString(); } public static void writeContentToExcel(String fileName) throws Exception {// 将内容写入 File tempFile = new File(fileName); WritableWorkbook workbook = Workbook.createWorkbook(tempFile); WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0); // 一些临时变量,用于写到excel中 Label l = null; jxl.write.Number n = null; jxl.write.DateTime d = null; // 预定义的一些字体和格式,同一个Excel中最好不要有太多格式 WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE); WritableCellFormat headerFormat = new WritableCellFormat(headerFont); WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED); WritableCellFormat titleFormat = new WritableCellFormat(titleFont); WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); WritableCellFormat detFormat = new WritableCellFormat(detFont); NumberFormat nf = new NumberFormat("0.00000"); // 用于Number的格式 WritableCellFormat priceFormat = new WritableCellFormat(detFont, nf); DateFormat df = new DateFormat("yyyy-MM-dd");// 用于日期的 WritableCellFormat dateFormat = new WritableCellFormat(detFont, df); l = new Label(0, 0, "用于测试的Excel文件", headerFormat);// 创建一些单元格,再加到sheet中 sheet.addCell(l); // 添加标题 int column = 0; l = new Label(column++, 2, "标题", titleFormat); sheet.addCell(l); l = new Label(column++, 2, "日期", titleFormat); sheet.addCell(l); l = new Label(column++, 2, "货币", titleFormat); sheet.addCell(l); l = new Label(column++, 2, "价格", titleFormat); sheet.addCell(l); // 添加内容 int i = 0; column = 0; l = new Label(column++, i + 3, "标题 " + i, detFormat); sheet.addCell(l); d = new DateTime(column++, i + 3, new java.util.Date(), dateFormat); sheet.addCell(d); l = new Label(column++, i + 3, "CNY", detFormat); sheet.addCell(l); n = new jxl.write.Number(column++, i + 3, 5.678, priceFormat); sheet.addCell(n); i++; column = 0; l = new Label(column++, i + 3, "标题 " + i, detFormat); sheet.addCell(l); d = new DateTime(column++, i + 3, new java.util.Date(), dateFormat); sheet.addCell(d); l = new Label(column++, i + 3, "SGD", detFormat); sheet.addCell(l); n = new jxl.write.Number(column++, i + 3, 98832, priceFormat); sheet.addCell(n); // 设置列的宽度 column = 0; sheet.setColumnView(column++, 20); sheet.setColumnView(column++, 20); sheet.setColumnView(column++, 10); sheet.setColumnView(column++, 20); workbook.write(); workbook.close(); System.out.println("内容写入" + fileName + "成功"); } public static void writeExcel(String fileName) {// 生成一个Excel文件 WritableWorkbook wwb = null; try { // 创建一个可写入的工作薄(Workbook)对象 wwb = Workbook.createWorkbook(new File(fileName)); } catch (IOException e) {// 捕获流异常 e.printStackTrace(); } if (wwb != null) { // 创建一个可写入的工作表 // Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 WritableSheet ws = wwb.createSheet("sheet1", 0); for (int i = 0; i < 10; i++) {// 循环添加单元格 for (int j = 0; j < 5; j++) { Label labelC = new Label(j, i, "这是第" + (i + 1) + "行,第" + (j + 1) + "列"); try { ws.addCell(labelC);// 将生成的单元格添加到工作表中 } catch (Exception e) {// 捕获异常 e.printStackTrace(); } } } try { wwb.write();// 从内存中写入文件中 wwb.close();// 从内存中写入文件中 } catch (Exception e) {// 捕获异常 e.printStackTrace(); } } System.out.println("生成一个Excel文件:" + fileName + "成功!"); } public static boolean searchKeyWord(File file, String keyWord) {// 搜索某一个文件中是否包含某个关键字 boolean res = false; Workbook wb = null; try { wb = Workbook.getWorkbook(file);// 构造Workbook(工作薄)对象 } catch (Exception e) {// 捕获异常 return res; } if (wb == null) return res; Sheet[] sheet = wb.getSheets();// 创建Sheet(工作表)对象 boolean breakSheet = false; if (sheet != null && sheet.length > 0) { for (int i = 0; i < sheet.length; i++) {// 对每个工作表进行循环 if (breakSheet) break; int rowNum = sheet[i].getRows();// 得到当前工作表的行数 boolean breakRow = false; for (int j = 0; j < rowNum; j++) {// 循环获得行信息 if (breakRow) break; Cell[] cells = sheet[i].getRow(j);// 得到当前行的所有单元格 if (cells != null && cells.length > 0) { boolean breakCell = false; for (int k = 0; k < cells.length; k++) {// 对每个单元格进行循环 if (breakCell) break; String cellValue = cells[k].getContents();// 读取当前单元格的值 if (cellValue == null) continue; if (cellValue.contains(keyWord)) {// 判断是否包含关键字 res = true; breakCell = true; breakRow = true; breakSheet = true; } } } } } } wb.close();// 关闭资源,释放内存 return res; } public static void updateExcel(String fileName) {// 修改Excel文件 try { Workbook wb = Workbook.getWorkbook(new File(fileName));// 构造Workbook(工作薄)对象 // 打开一个文件的副本,并且指定数据写回到原文件 WritableWorkbook book = Workbook.createWorkbook(new File(fileName), wb); WritableSheet sheet = book.createSheet(" 第二页 ", 1);// 添加一个工作表 sheet.addCell(new Label(0, 0, " 第二页的测试数据 "));// 添加一个单元格 book.write();// 副本对象关闭 book.close();// 工作薄对象关闭 } catch (Exception e) {// 捕获异常 System.out.println(e); } System.out.println("修改Excel文件" + fileName + "成功"); } public static void readExcelInfo(String fileName) throws Exception {// 获得Excel文件多少行多少列 Workbook book = Workbook.getWorkbook(new File(fileName));// 构造Workbook(工作薄)对象 Sheet sheet = book.getSheet(0); // 得到第一列第一行的单元格// 获得第一个工作表对象 int columnum = sheet.getColumns(); // 得到列数 int rownum = sheet.getRows(); // 得到行数 System.out.println(columnum); System.out.println(rownum); for (int i = 0; i < rownum; i++) // 循环进行读写 { for (int j = 0; j < columnum; j++) { Cell cell1 = sheet.getCell(j, i); String result = cell1.getContents(); System.out.print(result); System.out.print(" \t "); } System.out.println(); } book.close();// 关闭(工作薄)对象 } public static void main(String[] args) {// java程序主入口处 try { System.out.println("1.创建Excel文件,输入Excel文件名称(包括路径和后缀)"); Scanner scan = new Scanner(System.in); final String fileName = scan.next();// 获得键盘值 writeExcel(fileName);// 调用生成Excel方法 System.out.println("2.将内容写入Excel文件"); writeContentToExcel(fileName);// 调用将内容写入Excel方法 System.out.println("3.读取Excel文件"); System.out.println(readExcel(new File(fileName)));// 读取Excel方法 System.out.println("3.搜索关键字--'标题'"); System.out.println("找到关键字?" + searchKeyWord(new File(fileName), "标题"));// 调用搜索关键字方法 System.out.println("4.修改Excel文件"); updateExcel(fileName);// 调用修改Excel文件 System.out.println("5.读取Excel文件的行和列"); readExcelInfo(fileName); } catch (Exception e) {// 捕获异常 e.printStackTrace(); } } }
- jxl.jar (688 KB)
- 下载次数: 16
发表评论
-
JAVA IO 字节流实现文件copy效率比较
2014-12-24 13:32 3284package jonavin.io; import ... -
EhCache简单例子
2014-10-20 17:04 1124import net.sf.ehcache.Cache; ... -
java 读取.ini配置文件工具类
2014-10-09 16:29 9326import java.io.BufferedReader; ... -
POI读取excel文件通用代码(增强版--支持返回javaBean集合)---2003,2007
2014-09-25 13:21 2883import java.io.File; import j ... -
HttpClient模拟get,post请求并发送请求参数(json等)
2014-09-18 16:33 16860import java.io.IOException; ... -
POI读取Excel通用代码---支持2003,2007
2014-09-18 14:07 2098package com.citics.crm.custome ... -
将数据库树形记录转为java 树形数据结构
2014-08-24 18:36 4731/** * 转换为Tree结构 * @p ... -
java HTML2PDF HTML2DOC THML2Image 后台屏幕截图
2014-08-15 11:22 1241网上找的,下载学习吧。 -
java缓存技术学习
2014-07-25 18:05 5892package com.citics.crm.custome ... -
java unicode 转中文(学习用)
2014-07-10 09:47 1135第一种方式自己实现(笨,但可以知道原理) /** ... -
java+javascript获得两个日期之间的所有月份
2014-05-30 12:29 3242java版 ... -
java开发中有用的工具类
2014-01-03 14:51 0自己备用,不公开 -
java模拟调用Servlet
2013-12-26 13:27 1142public static void main(String ... -
JSOUP 网络爬虫
2013-12-17 10:17 842简单例子学习用 -
javax 邮件发送
2013-10-21 10:20 2433import java.util.Date; import ... -
[JODConverter]word转pdf心得分享(转)
2013-10-10 14:48 1816官方网站: http://www.artofsolving. ... -
java MD5机密工具
2013-09-13 09:33 1187/************************* ... -
JAVA 将文件转换为字节
2013-09-06 10:20 1303package com.tacct.tradecontrac ... -
javaBean转Map工具类
2013-09-05 13:37 9563package com.tacct.tradecontrac ... -
JAVA 操作blob数据然后生成word文件
2013-09-05 11:27 2024import java.io.*; import jav ...
相关推荐
Jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Excel文档。除了Jxl之外,还有Apache的一个POI项目,也可以操作Excel,两者相比之下:Jxl使用方便,但功能相对POI比较弱。POI使用复杂,...
能够实现「导入/导出 Excel」的第三方常用类库有 Apache poi、Java Excel(JXL)和阿里巴巴开源的 Easyexcel 等。这么多类库该怎么选呢?在这里小编给大家推荐阿里巴巴开源的「Easyexcel」。 性能对比 poi 和 jxl ...
java Excel API 是允许java开发者读取生成Excel电子表格的开源java API,另外,它包括一个允许java应用读取Excel,修改一些单元格,写入一个新的电子表格的机制。
由于项目需要对大量Excel数据进行输入输出处理,在使用JXL,POI后发现很容易出现OOM,最后在网上找到阿里的开源项目EasyExcel能很快速的读取写入超大Excel文件。经过大量的调试优化,现通过JAVA生成104万行20列的...
Jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Excel文档。
进入正题如何使用esayexcel写入和解析excel表格,这里就演示一个写入和读取最简单的方式,需要更多方法可以进入官方文档进行查看。 官方文档地址 首先搭建编码环境 1.创建一个maven项目。 2.创建成功之后,点开pom...
通过java操作excel表格的工具类库 jta-1.1.jar Java事务API,为J2EE平台提供了分布式事务服务 lucene-core.jar 、lucene-highlighter.jar 、compass-index-patch.jar、 compass-2.1.0.jar 是一个全文检索引擎的...
Android中操作Excel文件导出报表时主要采用开源库jxl,最早用在java上,但也可用于Android。与之类似的POI,因为依赖库众多,所以只能用于java,而不能用于Android。 使用jxl需要在Android工程中导入jxl.jar包,jxl...
目前处理Excel的开源javaAPI主要有两种,一是Jxl(Java Excel API),Jxl只支持Excel2003以下的版本。另外一种是Apache的Jakarta POI,相比于Jxl,POI对微软办公文档的支持更加强大,但是它使用复杂,上手慢。POI可支持...
一种基于XML的Excel向SVG图转换的解决方案,周运杰,杨俊,本文给出了一种以XML为中间文档格式的Excel电子表格向SVG图转换的解决方案。并采用基于Java的技术,利用开源工具包JXL, Batik等实现了这��
Struts 2需要的jar包: 1.commons-fileupload.jar(commons项目中的关于文件上传的包, struts...excel表格:jxl.jar 操作pdf文件:iText-5.0.5.jar 统计图(JFreechart两个):jcommon-1.0.10.jar,jfreechart-1.0.6.jar
用于带有分组、小计、数据聚合的报表和交叉表报表(或数据透视表)的 Java API。 以各种格式构建报告的简单、快速和简单的方法:HTML、XML、Excel、PDF、SVG。 这些报告可以以编程方式使用,也可以使用 spring 框架...