//既然是复制,那么我们首先要进行读取的操作。但是在jxl当中读取操作只能只读,而不能修改。也没有一种方式让我们直接在读取的时候定义成可读可写的
//但是jxl提供了一种方法。我们读取一份excel文件。然后将生产的workbook对象传入可读写的另外一个对象。这样的话。就可以实现一个读写的操作;
Workbook wb=null;
WritableWorkbook wwb=null;
try {
//从源文件中进行读取
wb=Workbook.getWorkbook(new File("c.xls"));
//然后复制一份到目标目录下、
//仔细看会发现。其实复制操作时读取和创建操作的一个综合打包。
wwb=Workbook.createWorkbook(new File("b.xls"),wb);
//得到第一个表;
WritableSheet ws= wwb.getSheet(0);
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
//得到具体的一个单元格
Cell c=ws.getCell(i, j);
//判断其类型;一般情况下有这么几种类型。是标签型的。数字型。日期型。
if(c.getType()==CellType.LABEL){
Label la=(Label) c;
la.setString("改变了!");
}
if(c.getType()==CellType.NUMBER){
Number no=(Number)c;
no.setValue(1);
}
if(c.getType()==CellType.DATE){
DateTime no=(DateTime)c;
no.setDate(new java.util.Date());
}
}
}
//每种不同的格式具有不一样的修改方法;
//标签型的话。用setString() 数字型的用setvalue 。日期型的用setDate();
//另外注意一点。这儿的修改不能像是获取一样一锅端。管它什么日期。标签。数字、全部将它的内容获取然后变成字符串。必须要判断你修改的这一个单元格的性质;
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
//关闭
try {
wwb.write();
wwb.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
wb.close();
}
System.out.println("修改了");
另外。如果你需要给修改的单元格限定格式的话。那么。只需要在修改之前给它指定格式就行
NumberFormat fivedps = new NumberFormat("#.#####");
WritableCellFormat cellFormat = new WritableCellFormat(fivedps);
cell.setFormat(cellFormat);
然后再进行修改即可。
通过运行我们发现。修改操作不是在原文件上操作的。因为原文件只有读取的操作。而是在复制的目标文件上进行操作。
官网文档里面有这么一段话:
However, if we need to modify this spreadsheet a handle to the various write interfaces is needed, which can be obtained using the copy method above. This copies the information that has already been read in as well as performing the additional processing to interpret the fields that are necessary to for writing spreadsheets. The disadvantage of this read-optimized strategy is that we have two spreadsheets held in memory rather than just one, thus doubling the memory requirements. For this reason copying and modifying large spreadsheets can be expensive in terms of processing and memory.
意思是说。复制和修改优点是只需要将原文件通过一个复制方法生成就行。而缺点是。我们必须在内存中保存两份文件的内容。这样付出的代价是昂贵的。
好了。关于jxl的操作就到此为止。附件我会附上源代码。
分享到:
相关推荐
使用jxl解析excel固定模版(导入解析),本资源是以智联excel简历为例解析, 1:上传 2:临时存储,3:解析保存,4:删除临时资源关闭流
jxl解析excel,内附详细代码说明.绝对可用
poi,jxl解析excelpoi,jxl解析excelpoi,jxl解析excelpoi,jxl解析excelpoi,jxl解析excelpoi,jxl解析excelpoi,jxl解析excel
jxl JAVA Excel解析,主要用于修改、上传、下载Excel文件。
1、java利用jxl解析 Excel文件 2、请将excel文件放到main函数指定的路径下运行即可
java中使用jxl打印excel报表,java中使用jxl打印excel报表,java中使用jxl打印excel报表
jxl,Java上用来生成Excel的jar工具包,下载后解压引入工程即可使用
很多人都没接触过载java中解析EXCEL中的内容,这个demo使用jxl.jar解析EXCEL2003的,帮助大家多学习学习!
jxl导出excel加水印 WritableWorkbook、WritableSheet、WritableCellFormat
excel 解析,jxl 实现,通用excel 解析,jxl 实现,通用
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
jxl的excel读写操作 java操作excel的读写。
使用jxl导出Excel表的好例子 导出excel表的例子
jxl对excel添加水印(含有setWaterMarkImage方法).zip
JXL操作EXCEL的各个类的解析.doc
学习使用JXL读写EXCEL文件, 学习使用JXL读写EXCEL文件。
利用jxl操作excel文件,提取exce文件数据生成txt文件。
项目代码 博文链接:https://lanhuidong.iteye.com/blog/1553532
jxl导出excel工具类,封装好了的,实现传递任意集合自动导出excel