我用jxl导出excel,一开始是可以导出的,在模板上设置了分列后,再导出的的excel文件就打不开了,提示文件格式无效,在网上查了查,workbook.write()也写了啊。
另外,拷贝一个好用的模板到自己机器上,导出后,打开还是提示文件格式无效。
郁闷了,各位大牛帮帮忙。
谢谢了
另外,拷贝一个好用的模板到自己机器上,导出后,打开还是提示文件格式无效。
郁闷了,各位大牛帮帮忙。
谢谢了
解决方案 »
- UnsupportedEncodingException cannot be resolved to a type
- 只刷新iframe,大家帮我看看我该怎么改改才对
- tomcat下,控件不能正常显示??
- 留言板问题
- 这个问题都解决不了,领导就要我滚蛋!(100分!)
- dojo中TabContainer的问题,ajax高手进!!
- 请问用什么软件开发JSP比较好
- jsp中怎么把页面输出和逻辑程序分开的方法啊!
- 关于用javaMail做一个检测是否有新邮件的问题,高手请详解,谢谢!!!!!
- jsp和servlet共用bean的问题,在线等待.....
- 配置 Sping 2.0事务 报错了 no declaration can be found for element 'tx
- 图表控件
ResultSet[] rSets, String[] sheetNames, String path,
String excelName) {
try {
WritableWorkbook book = Workbook.createWorkbook((new File(path
+ "\\" + excelName)));
for (int h = 0; h < sheetNames.length; h++) {
// 设置单元格样式
WritableFont wFont = new WritableFont(WritableFont.TAHOMA);
// 设置字体、大小
wFont.setColour(Colour.BLACK);
wFont.setBoldStyle(WritableFont.BOLD);
wFont.setPointSize(10);
WritableCellFormat wcf = new WritableCellFormat(wFont);
wcf.setBackground(Colour.YELLOW);
WritableSheet sheet = book.createSheet(sheetNames[h], h);
for (int i = 0; i < coloumNames.length; i++) {
Label label = new Label(i, 0, coloumNames[i], wcf);
sheet.addCell(label);
}
int i = 0;
wFont = new WritableFont(WritableFont.TAHOMA);
wFont.setColour(Colour.BLACK);
wFont.setPointSize(8);
wcf = new WritableCellFormat(wFont);
while (rSets[h].next()) {
i = i + 1;
sheet.setColumnView(i, 25);
Label label1A = new Label(0, i, rSets[h].getRow() + "");
sheet.addCell(label1A);
for (int j = 0; j < coloumNames.length; j++) {
if (j == 0) {
Label label = new Label(j, i, rSets[h].getRow()
+ "", wcf);
sheet.addCell(label);
} else {
Label label = new Label(j, i,
rSets[h].getString(j), wcf);
sheet.addCell(label);
}
}
}
}
book.write();
book.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
列明数组
导出的SQL结果集数组
sheet的名字数组
导出的Ecxel路径
excel名称
-===========
注意结果集数组的大小要和sheet名称数组大小相等。
File temFile = new File(templeFile); // 模版文件
File newexcelFile = new File(newFile); // 新文件
Workbook rwb = null;
WritableWorkbook workbook = null;
try {
try {
// 取得模板文件
rwb = Workbook.getWorkbook(temFile);
} catch (Exception ex) {
// ex.printStackTrace();
result = 0;
}
try {
// 通过模板创建一个文件
workbook = Workbook.createWorkbook(newexcelFile, rwb);
} catch (IOException e) {
// e.printStackTrace();
result = 0;
}
// 读取工作表的内容
WritableSheet ws = workbook.getSheet(0);
// 设置字体格式
WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.NO_BOLD);
// 把字体,和数字格式加到表格中
WritableCellFormat cellFormat1 = new WritableCellFormat(font);
cellFormat1.setBorder(Border.ALL, BorderLineStyle.THIN);
try {
// 居中对齐
cellFormat1.setBorder(jxl.format.Border.BOTTOM, BorderLineStyle.MEDIUM);
cellFormat1.setAlignment(jxl.format.Alignment.LEFT);
} catch (WriteException we) {
// we.printStackTrace();
result = 0;
}
if(list!=null&&list.size()>0){
// 下面开始添加单元格 代表行数据(从0开始(0,0))
for (int i = 0; i < list.size(); i++) {
TrainUser bean = (TrainUser) list.get(i);
// 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelA = new Label(0, i + 1, bean.getId().toString());
Label labelB = new Label(1, i + 1, bean.getFullName());
Label labelC = new Label(2, i + 1, bean.getUserName());
Label labelD = new Label(3, i + 1, bean.getPassword());
Label labelE = new Label(4, i + 1, bean.getEntryDate().toLocaleString());
Label labelF = new Label(5, i + 1, bean.getLevelNo());
Label labelG = new Label(6, i + 1, bean.getCardNo());
Label labelH = new Label(7, i + 1, bean.getBirthday().toLocaleString());
Label labelI = new Label(8, i + 1, bean.getRegionNo());
Label labelJ = new Label(9, i + 1, bean.getAgentNo());
Label labelK = new Label(10, i + 1, bean.getContact());
Label labelL = new Label(11, i + 1, bean.getNation());
Label labelM = new Label(12, i + 1, bean.getEducation());
Label labelN = new Label(13, i + 1, bean.getSex());
Label labelO = new Label(14, i + 1, bean.getIsMisstion().toString());
Label labelP = new Label(15, i + 1, bean.getContent());
try {
// 将生成的单元格添加到工作表中
labelA.setCellFormat(cellFormat1);
labelB.setCellFormat(cellFormat1);
labelC.setCellFormat(cellFormat1);
labelD.setCellFormat(cellFormat1);
labelE.setCellFormat(cellFormat1);
labelF.setCellFormat(cellFormat1);
labelG.setCellFormat(cellFormat1);
labelH.setCellFormat(cellFormat1);
labelI.setCellFormat(cellFormat1);
labelJ.setCellFormat(cellFormat1);
labelK.setCellFormat(cellFormat1);
labelL.setCellFormat(cellFormat1);
labelM.setCellFormat(cellFormat1);
labelN.setCellFormat(cellFormat1);
labelO.setCellFormat(cellFormat1);
labelP.setCellFormat(cellFormat1);
ws.addCell(labelA);
ws.addCell(labelB);
ws.addCell(labelC);
ws.addCell(labelD);
ws.addCell(labelE);
ws.addCell(labelF);
ws.addCell(labelG);
ws.addCell(labelH);
ws.addCell(labelI);
ws.addCell(labelJ);
ws.addCell(labelK);
ws.addCell(labelL);
ws.addCell(labelM);
ws.addCell(labelN);
ws.addCell(labelO);
ws.addCell(labelP);
} catch (RowsExceededException e) {
// e.printStackTrace();
result = 0;
} catch (WriteException e) {
// e.printStackTrace();
result = 0;
}
}
}
try {
workbook.write();
workbook.close();
} catch (IOException e) {
// e.printStackTrace();
result = 0;
}
result = 1;
}catch(Exception e){
result = 0;
}finally {
if (workbook != null) {
try {
workbook.close();
} catch (WriteException e) {
// e.printStackTrace();
result = 0;
} catch (IOException e) {
// e.printStackTrace();
result = 0;
}
}
if (rwb != null) {
rwb.close();
}
}