利用java jxl 创建,读取,更新excel文档
By:Roy.LiuLast updated:2012-09-09
用JAVA 读写 EXCEL,在网上查看,很多人会用 POI 方式,个人试用结果,感觉并不是那么好用。
其实还有一个组件,jxl ,用 jxl 也可以很方便的完成 excel 文档的读写操作。
jxl 的下载地址: http://www.andykhan.com/jexcelapi/index.html
将下载的JAR 包添加到工程的path中。然后就可以写测试程序了
1. 生成一个excel文档
2. 读取excel文档内容
3. 更新excel文档内容
各自源代码如下:
java jxl 生成EXCEL文档:
java jxl 更新Excel 文档
java jxl 读取 excel
其实还有一个组件,jxl ,用 jxl 也可以很方便的完成 excel 文档的读写操作。
jxl 的下载地址: http://www.andykhan.com/jexcelapi/index.html
将下载的JAR 包添加到工程的path中。然后就可以写测试程序了
1. 生成一个excel文档
2. 读取excel文档内容
3. 更新excel文档内容
各自源代码如下:
java jxl 生成EXCEL文档:
import java.io.*; import jxl.*; import jxl.write.*; public class CreateXLS { public static void main(String args[]) { try { // 打开文件 WritableWorkbook book = Workbook.createWorkbook(new File("测试.xls")); System.out.print("生成文挡: ---测试.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, 789.123); sheet.addCell(number); // 写入数据并关闭文件 book.write(); book.close(); } catch (Exception e) { System.out.println(e); } } }
java jxl 更新Excel 文档
import java.io.*; import jxl.*; import jxl.read.biff.BiffException; import jxl.write.*; public class UpdateXLS { public static void write()throws Exception{ WritableWorkbook wwb=Workbook.createWorkbook(new File("c:/1.xls")); WritableSheet ws=wwb.createSheet("Test Sheet 1",0); File file=new File("C:\\jbproject\\PVS\\WebRoot\\weekhit\\1109496996281.png"); WritableImage image=new WritableImage(1, 4, 6, 18,file); ws.addImage(image); wwb.write(); wwb.close(); } public static void main(String args[]) throws BiffException, IOException { try { // Excel获得文件 Workbook wb = Workbook.getWorkbook(new File("测试.xls")); // 打开一个文件的副本,并且指定数据写回到原文件 WritableWorkbook book = Workbook.createWorkbook(new File("测试.xls"), wb); // 添加一个工作表 WritableSheet sheet = book.createSheet("第二页", 1); sheet.addCell(new Label(0, 0, "第二页的测试数据")); book.write(); book.close(); System.out.print("数据已更新!"); WritableFont font1= new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD); //设置字体格式为excel支持的格式 WritableFont font3=new WritableFont(WritableFont.createFont("楷体_GB2312"),12,WritableFont.NO_BOLD ); WritableCellFormat format1=new WritableCellFormat(font1); Label label=new Label(0,0,"data 4 test",format1); // ①指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富的构造子,供不同情况下使用, // jExcelAPI的java-doc中有详细列表,这里不再列出。 // ②处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种属性,后面的单元格格式化中会有更多描述。 // ③处使用了Label类的构造子,指定了字串被赋予那种格式。 在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐 // 方式,比如针对我们上面的实例,可以指定: //把水平对齐方式指定为居中 format1.setAlignment(jxl.format.Alignment.CENTRE); //把垂直对齐方式指定为居中 format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); //设置自动换行 format1.setWrap(true); } catch (Exception e) { System.out.println(e); } String path="c:\\excel.xls";//Excel文件URL InputStream is = new FileInputStream(path);//写入到FileInputStream jxl.Workbook wb = Workbook.getWorkbook(is); //得到工作薄 jxl.Sheet st = wb.getSheet(0);//得到工作薄中的第一个工作表 Cell cell=st.getCell(0,0);//得到工作表的第一个单元格,即A1 String content=cell.getContents();//getContents()将Cell中的字符转为字符串 wb.close();//关闭工作薄 is.close();//关闭输入流 } }
java jxl 读取 excel
import java.io.*; import jxl.*; public class ReadXLS { public static void main(String args[]) { try { Workbook book = Workbook.getWorkbook(new File("测试.xls")); // 获得第一个工作表对象 Sheet sheet = book.getSheet(0); // 得到第一列第一行的单元格 Cell cell1 = sheet.getCell(0, 0); String result = cell1.getContents(); System.out.println(result); Cell cell2= sheet.getCell(1, 0); String result1= cell2.getContents(); System.out.println(result1); book.close(); } catch (Exception e) { System.out.println(e); } } }
From:一号门
Previous:django原生SQL语句查询返回字典的方法
COMMENTS