使用以下代码在test1.xls写入一个新数据(test1.xls原有一部分数据,只是在原sheet上添加一个新的数据)
public static void main(String[] args) {
try {
Workbook wb = Workbook.getWorkbook(new File("data\\test1.xls"));
WritableWorkbook book = Workbook.createWorkbook(new File("data\\test1.xls"), wb); WritableSheet sheet = book.getSheet(0);// 获得工作表
WritableCell cellWrite = sheet.getWritableCell(18, 2); //获得单元格
Label l = (Label) cellWrite;
l.setString("数据数据!!!"); book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
运行结果:打开excel文件的时候报错,Excel在“test1.xls”中发现不可读的内容,但是确定之后仍能打开,而且数据确实已经写进去了
有谁知道这是为什么吗?或者我写的代码有问题?
非常感谢!
public static void main(String[] args) {
try {
Workbook wb = Workbook.getWorkbook(new File("data\\test1.xls"));
WritableWorkbook book = Workbook.createWorkbook(new File("data\\test1.xls"), wb); WritableSheet sheet = book.getSheet(0);// 获得工作表
WritableCell cellWrite = sheet.getWritableCell(18, 2); //获得单元格
Label l = (Label) cellWrite;
l.setString("数据数据!!!"); book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
}
运行结果:打开excel文件的时候报错,Excel在“test1.xls”中发现不可读的内容,但是确定之后仍能打开,而且数据确实已经写进去了
有谁知道这是为什么吗?或者我写的代码有问题?
非常感谢!
Workbook book = Workbook.getWorkbook(new FileInputStream(reportFilePath));
WritableWorkbook workbook = Workbook.createWorkbook(outStream,book);
WritableSheet sheet = workbook.getSheet(0);
((Label)sheet.getWritableCell(0,0)).setString("数据");
workbook.write();
workbook.close();
outStream.close();
response.flushBuffer();因为我们是要导出Excel,所以使用的是response输出流,先读取模块,再往里面写数据,不是很复杂,你试下。
OutputStream outStream = response.getOutputStream(); //取得输出流
response.reset();
//设置响应和下载文件名
response.setHeader("content-disposition", "attachment;filename=materialsupply.xls");
response.setContentType("application/vnd.ms-excel");
很奇怪 不知道什么原因
我手工在excel里面把宏的安全性弄成低了 但是感觉也不是个事儿