java_Excel jxl 操作Excel文件(读取,创建,更新)
2011-10-11 14:23
441 查看
首先网上搜索了一些文章,现在java操作excel比较多的使用jxl与POI。
前者比较轻便,更有针对性,但是功能不够强大。
有人已经使用代码测试过了,详情见http://sunjun041640.blog.163.com/blog/static/256268322008525113505/
POI还没用过,先弄个jxl的简单操作Excel供大家参考。
前者比较轻便,更有针对性,但是功能不够强大。
有人已经使用代码测试过了,详情见http://sunjun041640.blog.163.com/blog/static/256268322008525113505/
POI还没用过,先弄个jxl的简单操作Excel供大家参考。
package excelFile; import java.io.File; import java.io.IOException; import jxl.*; import jxl.format.UnderlineStyle; import jxl.read.biff.BiffException; import jxl.write.*; import jxl.write.Boolean; import jxl.write.Number; import jxl.write.biff.RowsExceededException; public class TestJlxFuction { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub readExl("d:/test/wbook.xls"); creatExl("d:/test/writebook.xls"); modifyExl("d:/test/writebook.xls"); } private static void creatExl(String fileName) { WritableWorkbook wwb = null; try { wwb = Workbook.createWorkbook(new File(fileName)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } WritableSheet ws = wwb.createSheet("第1页", 1); /** *下面的格式设置出自: http://javacrazyer.iteye.com/blog/723924 */ //**************往工作表中添加数据***************** //1.添加Label对象 Label label = new Label(0,0,"this is a label test"); try { ws.addCell(label); //添加带有字型Formatting对象 WritableFont wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true); WritableCellFormat wcf = new WritableCellFormat(wf); Label labelcf = new Label(1,0,"this is a label test",wcf); ws.addCell(labelcf); //添加带有字体颜色的Formatting对象 WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED); WritableCellFormat wcfFC = new WritableCellFormat(wfc); Label labelCF = new Label(1,0,"This is a Label Cell",wcfFC); ws.addCell(labelCF); //2.添加Number对象 Number labelN = new Number(0,1,3.1415926); ws.addCell(labelN); //添加带有Formatting的Number对象 NumberFormat nf = new NumberFormat("#.##"); WritableCellFormat wcfN = new WritableCellFormat(nf); Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN); ws.addCell(labelNF); //3.添加Boolean对象 Boolean labelB = new jxl.write.Boolean(0,2,false); ws.addCell(labelB); //4.添加DateTime对象 jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date()); ws.addCell(labelDT); //添加带有Formatting的DateFormat对象 DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss"); WritableCellFormat wcfDF = new WritableCellFormat(df); DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF); ws.addCell(labelDTF); //添加图片对象,jxl只支持png格式图片 File image = new File("f:\\2.png"); WritableImage wimage = new WritableImage(0,1,2,2,image); ws.addImage(wimage); } catch (RowsExceededException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { wwb.write(); try { wwb.close(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 读取excel中的信息 * 通过获取row与column进行遍历 */ private static void readExl(String fileName) { Workbook book = null; Sheet [] sheets = null; Sheet sheet0 = null; try { try { book = Workbook.getWorkbook(new File(fileName)); } catch (BiffException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } sheets = book.getSheets(); sheet0 = sheets[0]; /* * 可以通过两层循环的方式遍历获取excel中的数据 */ int rowNum = sheet0.getRows(); int colNum = sheet0.getColumns(); System.out.println("Rows :" + rowNum); System.out.println("Columns :" + colNum); for(int r = 0; r < rowNum; r++) { for(int c = 0; c < colNum; c++) { //注意getCell 参数1为列标,参数2二行标 Cell cell = sheet0.getCell(c, r); String value = cell.getContents(); System.out.println(value); } } book.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 更新Excel内容 * 采用copy的方式创建book进行操作 */ public static void modifyExl(String fileName) { try { Workbook rwb = Workbook.getWorkbook(new File(fileName)); //打开一个文件的副本,并且指定数据写回到原文件 WritableWorkbook wwb = Workbook.createWorkbook(new File(fileName),rwb);//copy WritableSheet ws = wwb.getSheet(0); WritableCell wc = ws.getWritableCell(0,0); //判断单元格的类型,做出相应的转换 if(wc.getType() == CellType.LABEL) { Label label = (Label)wc; label.setString("The value has been modified"); } wwb.write(); wwb.close(); rwb.close(); } catch(Exception e) { e.printStackTrace(); } } }
相关文章推荐
- java实现对Excel文件进行创建、读取、修改等操作
- java处理Excel文件---excel文件的创建,删除,写入,读取
- Java处理Excel文件---excel文件的创建,删除,写入,读取
- poi读取文件,并获取相应属性 (java操作Excel文件)
- jxl操作Excel(读取、创建、更新)
- (转)实现对Java配置文件Properties的读取、写入与更新操作
- Java之文本文件的创建和读取(含IO流操作)
- 简单用Java Excel 创建和读取 Excel文件
- Java配置文件Properties的读取、写入与更新操作
- 对Excel表的操作(读取,更新,创建)
- 操作Excel文件,读取,创建
- Java配置文件Properties的读取、写入与更新操作
- Java - 使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?
- Webservice_10_Stax的基本操作(XPath方式读取xml,用XMLStreamReader创建Xml,用Transformer更新节点信息)
- java文件创建、删除、读取、写入操作大全
- java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作
- Java实现二叉树的创建和遍历操作(有更新)
- 对Java配置文件Properties的读取、写入与更新操作
- XML解析器可以读取、更新、创建、操作一个XML文档