使用 jxl 修改现有 Excel
我无法使用jxl编辑现有的excel工作表。它总是创建一个新的。任何人都可以帮我。请给出一个小的示例代码。
我无法使用jxl编辑现有的excel工作表。它总是创建一个新的。任何人都可以帮我。请给出一个小的示例代码。
jxl旨在提高读取效率(因为这是API的主要用途)。为了提高性能,与输出信息相关的数据(例如,所有格式信息,例如字体)在读取电子表格时不会被解释,因为在询问原始数据值时这是多余的。
但是,如果我们需要修改此电子表格,则需要各种写入接口的句柄,这可以使用 copy 方法获得。
Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));
WritableWorkbook copy = Workbook.createWorkbook(new File("temp.xls"), workbook);
这将复制已读入的信息,并执行其他处理以解释编写电子表格所需的字段。这种读取优化策略的缺点是,我们在内存中保存了两个电子表格,而不仅仅是一个电子表格,从而使内存要求翻了一番。
但在此之后,您可以做任何您想做的事情。喜欢:
WritableSheet sheet2 = copy.getSheet(1);
WritableCell cell = sheet2.getWritableCell(1, 2);
if (cell.getType() == CellType.LABEL)
{
Label l = (Label) cell;
l.setString("modified cell");
}
copy.write();
copy.close();
workbook.close();
注意:这直接取自Andy Khan的教程页面。
我知道这是一个相当古老的问题,但是如果有人会遇到同样的问题,那么为了保留正确的格式(字体类型,着色等),您应该在将其转换为Label之前保存单元格格式,然后强制单元格采用以前的格式。法典:
CellFormat cfm = cell.getCellFormat();
Label l = (Label) cell;
l.setString("modified cell");
cell.setCellFormat(cfm);