从excel读取数据生成新的excel以及修改excel

上传人:wt****50 文档编号:33957036 上传时间:2018-02-19 格式:DOC 页数:5 大小:37KB
返回 下载 相关 举报
从excel读取数据生成新的excel以及修改excel_第1页
第1页 / 共5页
从excel读取数据生成新的excel以及修改excel_第2页
第2页 / 共5页
从excel读取数据生成新的excel以及修改excel_第3页
第3页 / 共5页
从excel读取数据生成新的excel以及修改excel_第4页
第4页 / 共5页
从excel读取数据生成新的excel以及修改excel_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《从excel读取数据生成新的excel以及修改excel》由会员分享,可在线阅读,更多相关《从excel读取数据生成新的excel以及修改excel(5页珍藏版)》请在金锄头文库上搜索。

1、Java Excel 是一开放源码项目,通过它 Java 开发人员可以读取 Excel 文件的内容、创建新的 Excel 文件、更新已经存在的 Excel 文件。使用该 API 非 Windows 操作系统也可以通过纯 Java 应用来处理 Excel 数据表。因为是使用 Java 编写的,所以我们在 Web 应用中可以通过 JSP、Servlet 来调用 API 实现对 Excel 数据表的访问。提供以下功能: 从 Excel 95、97、2000 等格式的文件中读取数据; 读取 Excel 公式(可以读取 Excel 97 以后的公式); 生成 Excel 数据表(格式为 Excel 97

2、); 支持字体、数字、日期的格式化; 支持单元格的阴影操作,以及颜色操作; 修改已经存在的数据表; 能够读取图表信息 1.应用示例:包括从 Excel 读取数据,生成新的 Excel,以及修改 Excelpackage common.util;import jxl.*;import jxl.format.UnderlineStyle;import jxl.write.*;import jxl.write.Number;import jxl.write.Boolean;import java.io.*;/* Created by IntelliJ IDEA.* User: xl* Date: 2

3、005-7-17* Time: 9:33:22* To change this template use File | Settings | File Templates.*/public class ExcelHandlepublic ExcelHandle()/* 读取 Excel* param filePath*/public static void readExcel(String filePath)tryInputStream is = new FileInputStream(filePath);Workbook rwb = Workbook.getWorkbook(is);/She

4、et st = rwb.getSheet(0)这里有两种方法获取 sheet 表,1 为名字,而为下标,从 0 开始Sheet st = rwb.getSheet(original);Cell c00 = st.getCell(0,0);/通用的获取 cell 值的方式,返回字符串String strc00 = c00.getContents(); /获得 cell 具体类型值的方式if(c00.getType() = CellType.LABEL)LabelCell labelc00 = (LabelCell)c00;strc00 = labelc00.getString();/输出Syst

5、em.out.println(strc00);/关闭rwb.close();catch(Exception e)e.printStackTrace();/* 输出 Excel* param os*/public static void writeExcel(OutputStream os)try/* 只能通过 API 提供的工厂方法来创建 Workbook,而不能使用 WritableWorkbook 的构造函数,* 因为类 WritableWorkbook 的构造函数为 protected 类型* method(1)直接从目标文件中读取 WritableWorkbook wwb = Work

6、book.createWorkbook(new File(targetfile);* method(2)如下实例所示 将 WritableWorkbook 直接写入到输出流*/WritableWorkbook wwb = Workbook.createWorkbook(os);/创建 Excel 工作表 指定名称和位置WritableSheet ws = wwb.createSheet(Test Sheet 1,0);/*往工作表中添加数据*/1.添加 Label 对象Label label = new Label(0,0,this is a label test);ws.addCell(la

7、bel);/添加带有字型 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(Writa

8、bleFont.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(lab

9、elN);/添加带有 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.添加 DateT

10、ime 对象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(),w

11、cfDF);ws.addCell(labelDTF);/添加图片对象,jxl 只支持 png 格式图片File image = new File(f:2.png);WritableImage wimage = new WritableImage(0,1,2,2,image);/0,1 分别代表 x,y.2,2 代表宽和高占的单元格数ws.addImage(wimage);/写入工作表wwb.write();wwb.close();catch(Exception e)e.printStackTrace();/* 拷贝后,进行修改,其中 file1 为被 copy 对象,file2 为修改后创建的

12、对象* 尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去,* 以使单元格的内容以不同的形式表现* param file1* param file2*/public static void modifyExcel(File file1,File file2)tryWorkbook rwb = Workbook.getWorkbook(file1);WritableWorkbook wwb = Workbook.createWorkbook(file2,rwb);/copy WritableSheet ws = wwb.getSheet(0);WritableCell wc

13、 = 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();/测试public static void main(String args)try/读 ExcelExcelHandle.readExcel(f:/testRea

14、d.xls);/输出 ExcelFile fileWrite = new File(f:/testWrite.xls);fileWrite.createNewFile();OutputStream os = new FileOutputStream(fileWrite);ExcelHandle.writeExcel(os);/修改 ExcelExcelHandle.modifyExcel(new file(),new File();catch(Exception e)e.printStackTrace();2.在 jsp 中做相关测试,创建一个 writeExcel.jsp在 IE 中浏览 writeExcel.jsp 就可以动态生成 Excel 文档了,其中 response.setContentType(application/vnd.ms-excel);语句必须要,才能确保不乱码,在 jsp 中输入不行。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号