java导出复杂Excel报表求帮助
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java导出复杂Excel报表求帮助相关的知识,希望对你有一定的参考价值。
就是使用poi工具,你自己去下载poi.jar吧。public class CreateXL
public static String xlsFile="test.xls"; //产生的Excel文件的名称
public static void main(String args[])
try
HSSFWorkbook workbook = new HSSFWorkbook(); //产生工作簿对象
HSSFSheet sheet = workbook.createSheet(); //产生工作表对象
//设置第一个工作表的名称为firstSheet
//为了工作表能支持中文,设置字符编码为UTF_16
workbook.setSheetName(0,"firstSheet",HSSFWorkbook.ENCODING_UTF_16);
//产生一行
HSSFRow row = sheet.createRow((short)0);
//产生第一个单元格
HSSFCell cell = row.createCell((short) 0);
//设置单元格内容为字符串型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//为了能在单元格中写入中文,设置字符编码为UTF_16。
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//往第一个单元格中写入信息
cell.setCellValue("测试成功");
FileOutputStream fOut = new FileOutputStream(xlsFile);
workbook.write(fOut);
fOut.flush();
fOut.close();
System.out.println("文件生成...");
//以下语句读取生成的Excel文件内容
FileInputStream fIn=new FileInputStream(xlsFile);
HSSFWorkbook readWorkBook= new HSSFWorkbook(fIn);
HSSFSheet readSheet= readWorkBook.getSheet("firstSheet");
HSSFRow readRow =readSheet.getRow(0);
HSSFCell readCell = readRow.getCell((short)0);
System.out.println("第一个单元是:" + readCell.getStringCellValue());
catch(Exception e)
System.out.println(e);
与数据库结合使用
使用POI,结合JDBC编程技术,我们就可以方便地将数据库中的数据导出生成Excel报表。其关键代码如下:
/*把数据集rs中的数据导出至Excel工作表中。
*传入参数:数据集rs,Excel文件名称xlsName,工作表名称sheetName。
*/
public static void resultSetToExcel(ResultSet rs,String xlsName,String sheetName) throws Exception
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
workbook.setSheetName(0,sheetName,HSSFWorkbook.ENCODING_UTF_16);
HSSFRow row= sheet.createRow((short)0);;
HSSFCell cell;
ResultSetMetaData md=rs.getMetaData();
int nColumn=md.getColumnCount();
//写入各个字段的名称
for(int i=1;i<=nColumn;i++)
cell = row.createCell((short)(i-1));
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(md.getColumnLabel(i));
int iRow=1;
//写入各条记录,每条记录对应Excel中的一行
while(rs.next())
row= sheet.createRow((short)iRow);;
for(int j=1;j<=nColumn;j++)
cell = row.createCell((short)(j-1));
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(rs.getObject(j).toString());
iRow++;
FileOutputStream fOut = new FileOutputStream(xlsName);
workbook.write(fOut);
fOut.flush();
fOut.close();
JOptionPane.showMessageDialog(null,"导出数据成功!");
参考技术A 遇到了什么问题?具体描述一下吧
JAVA原始的导出excel文件,快捷通用 方便 还能够导出word文档哦
如今导出excel基本上都是用poi了,当报表格式非常负责的时候 开发难度会加大
假设报表有格式有变化 那就更复杂了,先发现一个非常老的技术。能够解决格式复杂的报表。
实例代码例如以下:
<%@ page contentType="application/vnd.ms-excel;charset=GBK" %> <%@page import="java.net.URLEncoder"%> <% String filedisplay = "文件.xls"; filedisplay = URLEncoder.encode(filedisplay, "UTF-8"); response.addHeader("Content-Disposition", "attachment;filename=" + filedisplay); %> <!doctype html> <html> <head> <title>导出Excel实例</title> <style>tr td{border:1px red double;}</style> </head> <body> <table style="border:1px"> <tr> <td>ID</td> <td>名称</td> <td>性别</td> <td>年龄</td> </tr> <tr> <td>1</td> <td>张三</td> <td>男</td> <td>18</td> </tr> <tr> <td>2</td> <td>张三</td> <td>男</td> <td>18</td> </tr><tr> <td>3</td> <td>张三</td> <td>男</td> <td>18</td> </tr><tr> <td>4</td> <td>张三</td> <td>男</td> <td>18</td> </tr> </table> </body> </html>
以上是关于java导出复杂Excel报表求帮助的主要内容,如果未能解决你的问题,请参考以下文章
JAVA原始的导出excel文件,快捷通用 方便 还能够导出word文档哦