jxl的写操作有两种:一创建Excel,另一更新Excel,前面对jexcelapi进行了简单介绍,在该示例程序中数据格式非常简单,只有字符串这一种格式,下面我们考虑针对不同数据类型的数据导出新的Excel文件。假设要导出以下Excel文件:
JExcelApi支持数据格式 | ||||
数据格式 | 浮点数 | 整数 | 布尔值 | 日期 |
数据实例 | 99.99 | 99 | false | 2011-11-11 11:11:11 |
为了实现这个操作,我们需要对各单元格的数据类型进行设置,示例代码如下:
public void createComplexExcel() throws IOException, RowsExceededException, WriteException, BiffException { WritableWorkbook wb = Workbook.createWorkbook(new File(path)); // 创建新的工作表,sheet只能在工作簿中使用 WritableSheet sheet = wb.createSheet("tt", 1); WritableCell cell = new Label(0, 0, "JExcelApi支持数据格式"); CellFormat cf = null; sheet.addCell(cell); cell = new Label(0, 1, "数据格式"); sheet.addCell(cell); cell = new Label(1, 1, "浮点数"); sheet.addCell(cell); cell = new Label(2, 1, "整数"); sheet.addCell(cell); cell = new Label(3, 1, "布尔值"); sheet.addCell(cell); cell = new Label(4, 1, "日期"); sheet.addCell(cell); cell = new Label(0, 2, "数据实例"); sheet.addCell(cell); // 生成保存浮点数的单元格,通过jxl.write.Number来实现jxl.write.WritableCell接口 // Number构造函数三个参数是1.列号2.行号3.数据 cell = new Number(1, 2, 99.99); sheet.addCell(cell); // 生成保存整数的单元格 cell = new Number(2, 2, 99); sheet.addCell(cell); // 生成保存布尔值的单元格 cell = new Boolean(3, 2, false); sheet.addCell(cell); // 生成保存日期的单元格,并为该时间设置输出格式 Calendar cal = Calendar.getInstance(); cal.set(2011, 11, 11, 11, 11, 11); Date d = cal.getTime(); DateFormat df = new DateFormat("yyyy-MM-dd hh:mm:ss");// 为时间设置输出格式为:"yyyy-MM-dd hh:mm:ss" cf = new WritableCellFormat(df); cell = new DateTime(4, 2, d, cf); sheet.addCell(cell); // 将内容写到输出流中,然后关闭工作区,最后关闭输出流 wb.write(); wb.close(); }