首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Excel导出,jxl兑现

2012-08-22 
Excel导出,jxl实现1.导出一般可以用poi包和jxl最开始使用poi,发现导出的数据是乱码,poi2.5以上就没有设置

Excel导出,jxl实现
1.导出一般可以用poi包和jxl
  最开始使用poi,发现导出的数据是乱码,poi2.5以上就没有设置编码的属性,但是使用poi2.5导出还是乱码,不知道是不是由于我的office2007的缘故,网上说poi3.5才兼容office2007.没办法,索性就换jxl来实现咯。

2.下边有jxl包和poi3.6的包

下边是我的一个例子,poi的实现方法,等以后找出问题在贴出来

import java.io.File;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;/** *  * @author 赵永恩 * */public class ExcelReport {/** * @param args */public static void main(String[] args) {try {// 打开文件WritableWorkbook book = Workbook.createWorkbook(new File("c:/yyyyMMddHHmmss.xls"));// 生成名为“第一页”的工作表,参数0表示这是第一页WritableSheet sheet = book.createSheet("统计", 0);/* * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123 *///jxl.write.Number number = new jxl.write.Number(1, 0, 789.123);//sheet.addCell(number);   /********************************public*****************************/   WritableFont font= new WritableFont(WritableFont.createFont("宋体"),16,WritableFont.BOLD);    WritableCellFormat cellFormat = new WritableCellFormat(font);      cellFormat.setAlignment(jxl.format.Alignment.CENTRE);//设置文本对其方式,左对齐还是右对齐   jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(cellFormat);      WritableFont font1= new WritableFont(WritableFont.createFont("宋体"),14);    WritableCellFormat cellFormat1 = new WritableCellFormat(font1);      jxl.write.WritableCellFormat wcf1 = new jxl.write.WritableCellFormat(cellFormat1);      WritableFont font2= new WritableFont(WritableFont.createFont("宋体"),10);    WritableCellFormat cellFormat2 = new WritableCellFormat(font2);      cellFormat2.setAlignment(jxl.format.Alignment.CENTRE);//设置文本对其方式,左对齐还是右对齐   jxl.write.WritableCellFormat wcf2 = new jxl.write.WritableCellFormat(cellFormat2);   /********************************public*****************************/      sheet.setRowView(0, 800); // 设置行的高度   sheet.setRowView(1, 600);    sheet.setRowView(2, 400);    sheet.setRowView(3, 600);   sheet.setColumnView(1, 10); // 设置列的宽度      // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)   sheet.addCell(new Label(0, 0, "统计表", wcf)); // 合并单元格   sheet.mergeCells(0, 0, 6, 0); // 合并单元格            sheet.addCell(new Label(0, 1, "填报单位:XXX",wcf1));   sheet.mergeCells(0, 1, 6, 1); // 合并单元格         sheet.addCell(new Label(0, 2, "县名",wcf2));   sheet.mergeCells(0, 2, 0, 3); // 合并单元格      sheet.addCell(new Label(1, 2, "房屋损毁",wcf2));   sheet.mergeCells(1, 2, 2, 2); // 合并单元格   sheet.addCell(new Label(1, 3, "损坏(间)",wcf2));   sheet.addCell(new Label(2, 3, "倒塌(间)",wcf2));      sheet.addCell(new Label(3, 2, "农业受灾",wcf2));   sheet.mergeCells(3, 2, 6, 2); // 合并单元格   sheet.addCell(new Label(3, 3, "受灾(公顷)",wcf2));   sheet.addCell(new Label(4, 3, "成灾(公顷)",wcf2));   sheet.addCell(new Label(5, 3, "绝收(公顷)",wcf2));   sheet.addCell(new Label(6, 3, "损失现粮(万吨)",wcf2));      int i=0;   for(i=0;i<10;i++){   //这是循环出你的值   sheet.addCell(new Label(0, i+4, "value_"+i,wcf2));   sheet.addCell(new Label(1, i+4, i+"",wcf2));   sheet.addCell(new Label(2, i+4, i+"",wcf2));   }      sheet.addCell(new Label(0, i+4, "合计"+i,wcf2));   // 写入数据并关闭文件book.write();book.close();} catch (Exception e) {System.out.println(e);e.printStackTrace();}}}



热点排行