可随意转载,但请注明出处及作者 SonyMusic 2003.05.15 ========================================================================== 在Java中向Excel文件写入内容
四、导出数据到Excel文件中 下面的例子,设置了数字、日期的格式,还有字体,颜色等。
File tempFile=new File("d:/temp/output.xls"); WritableWorkbook workbook = Workbook.createWorkbook(tempFile); WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0);
//一些临时变量,用于写到excel中 Label l=null; jxl.write.Number n=null; jxl.write.DateTime d=null;
//预定义的一些字体和格式,同一个Excel中最好不要有太多格式 WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE); WritableCellFormat headerFormat = new WritableCellFormat (headerFont);
WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED); WritableCellFormat titleFormat = new WritableCellFormat (titleFont);
WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); WritableCellFormat detFormat = new WritableCellFormat (detFont);
NumberFormat nf=new NumberFormat("0.00000");//用于Number的格式 WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf);
DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的 WritableCellFormat dateFormat = new WritableCellFormat (detFont, df);
//剩下的事情,就是用上面的内容和格式创建一些单元格,再加到sheet中 l=new Label(0, 0, "用于测试的Excel文件", headerFormat); sheet.addCell(l);
//add Title int column=0; l=new Label(column++, 2, "标题", titleFormat); sheet.addCell(l); l=new Label(column++, 2, "日期", titleFormat); sheet.addCell(l); l=new Label(column++, 2, "货币", titleFormat); sheet.addCell(l); l=new Label(column++, 2, "价格", titleFormat); sheet.addCell(l);
//add detail int i=0; column=0; l=new Label(column++, i+3, "标题 "+i, detFormat); sheet.addCell(l); d=new DateTime(column++, i+3, new java.util.Date(), dateFormat); sheet.addCell(d); l=new Label(column++, i+3, "CNY", detFormat); sheet.addCell(l); n=new jxl.write.Number(column++, i+3, 5.678, priceFormat); sheet.addCell(n);
i++; column=0; l=new Label(column++, i+3, "标题 "+i, detFormat); sheet.addCell(l); d=new DateTime(column++, i+3, new java.util.Date(), dateFormat); sheet.addCell(d); l=new Label(column++, i+3, "SGD", detFormat); sheet.addCell(l); n=new jxl.write.Number(column++, i+3, 98832, priceFormat); sheet.addCell(n);
//设置列的宽度 column=0; sheet.setColumnView(column++, 20); sheet.setColumnView(column++, 20); sheet.setColumnView(column++, 10); sheet.setColumnView(column++, 20);
workbook.write(); workbook.close();
|