JSP如何将查询出来的数据导入到excel表格中 JSP如何将查询出来的数据导入到excel表格中同时显示表头和列名具体的应该如何实现 请大家来帮帮忙 谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要导出数据到excel文件有一个简单的方法:先建一个excel文件,在其中设定你的格式,比如:姓名 学号张三 123然后另存为网页格式.html,最后把生成文件的后缀改为jsp,在jsp文件中从数据库中读取你的数据,并将读出来的数据,放在“张三”,“123”的地方;并且在jsp文件的头部加上:<%@page contentType="application/vnd.ms-excel;charset=GBK" %> 用JXL或POI,可以到网上找找。最简单的方法:安装Office 2003,在显示的JSP页面中点击鼠标右键,选择“导出到Microsoft Office Excel”就行了:) 回复人: yaray(雅睿,生活在别处) 我在 网上找了 老半天都没有找到JXL包 你能告诉 在哪里有下载的吗 ?或者发给我 [email protected] to:Jgood_boy(寂寞猪宝宝)我那个方法简单可行,我就是用的这种方式,楼主可以试一试! to: huyc_fly() 那个 可以是 可以啊 但是操作起来就麻烦点而已有没有点一个按钮就可以直接 导入到excel表格中的方法呢 呵呵,能有简单的我就用简单可靠的,什么jxl和poi比我这个可能有效,不过有点麻烦 http://prdownloads.sourceforge.net/jexcelapi/jexcelapi_2_5_9.zip?download这里有jxl的包下的,还有相关的API import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * @param inputFile 输入模板文件路径 * @param outputFile 输入文件存放于服务器路径 * @param dataList 待导出数据 * @throws Exception * @roseuid: */ public void exportExcelFile(String inputFile, String outputFile, List dataList) throws Exception { //用模板文件构造poi POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(inputFile)); //创建模板工作表 HSSFWorkbook templatewb = new HSSFWorkbook(fs); //直接取模板第一个sheet对象 HSSFSheet templateSheet = templatewb.getSheetAt(1); //得到模板的第一个sheet的第一行对象 为了得到模板样式 HSSFRow templateRow = templateSheet.getRow(0); //HSSFSheet timplateSheet = templatewb.getSheetAt(1); //取得Excel文件的总列数 int columns = templateSheet.getRow((short) 0).getPhysicalNumberOfCells(); Debug.println("columns is : " + columns); //创建样式数组 HSSFCellStyle styleArray[] = new HSSFCellStyle[columns]; //一次性创建所有列的样式放在数组里 for (int s = 0; s < columns; s++) { //得到数组实例 styleArray[s] = templatewb.createCellStyle(); } //循环对每一个单元格进行赋值 //定位行 for (int rowId = 1; rowId < dataList.size(); rowId++) { //依次取第rowId行数据 每一个数据是valueList List valueList = (List) dataList.get(rowId - 1); //定位列 for (int columnId = 0; columnId < columns; columnId++) { //依次取出对应与colunmId列的值 //每一个单元格的值 String dataValue = (String) valueList.get(columnId); //取出colunmId列的的style //模板每一列的样式 HSSFCellStyle style = styleArray[columnId]; //取模板第colunmId列的单元格对象 //模板单元格对象 HSSFCell templateCell = templateRow.getCell((short) columnId); //创建一个新的rowId行 行对象 //新建的行对象 HSSFRow hssfRow = templateSheet.createRow(rowId); //创建新的rowId行 columnId列 单元格对象 //新建的单元格对象 HSSFCell cell = hssfRow.createCell((short) columnId); //如果对应的模板单元格 样式为非锁定 if (templateCell.getCellStyle().getLocked() == false) { //设置此列style为非锁定 style.setLocked(false); //设置到新的单元格上 cell.setCellStyle(style); } //否则样式为锁定 else { //设置此列style为锁定 style.setLocked(true); //设置到新单元格上 cell.setCellStyle(style); } //设置编码 cell.setEncoding(HSSFCell.ENCODING_UTF_16); //Debug.println("dataValue : " + dataValue); //设置值 统一为String cell.setCellValue(dataValue); } } //设置输入流 FileOutputStream fOut = new FileOutputStream(outputFile); //将模板的内容写到输出文件上 templatewb.write(fOut); fOut.flush(); //操作结束,关闭文件 fOut.close(); } 上面的方法都是可以实现的,但是又要连接数据库搞jsp,又要写java代码,麻烦的很。而且对于页面中存在合并单元格的情况也没有更多的考虑(如果存在大量的不规则的单元格合并的情况,如何生成数组,如果单元中存在用javascript计算生成的与数据库无关的统计数据,又该如何从数据库取值)。所以说最简单的就是把你在页面上看到的东西直接倒入到Excel,要实现这个就只能选择脚本语言javascript。至于office对web支持直接保存为execl,有很大的局限性,无法支持框架,分窗体,不支持动态生成的表格等等,反正我基本上没有成功过。如果需要我这里有javascript代码,[email protected] hibernate 中没有做一对多 , 那种关联映射的关联的话怎么做连接查询 初学,关于ajax异步的问题 求 能验证 yyyy-MM-dd HH:mm:ss 格式的 正则表达式 ! oracle日期问题 一个很棘手的问题! 请指教! 在java里如何从xml中取值 打开xml文件时出错 向各位大侠请教关于读写oracle9中blod和clob类型的办法..多谢! 求命………高手相救!!!!在线等待 想交几个编程序的高手~~ 小弟我的处女作,大家帮忙提提意见 请教 关于JFreeChart的XY轴坐标的问题
先建一个excel文件,在其中设定你的格式,比如:
姓名 学号
张三 123
然后另存为网页格式.html,最后把生成文件的后缀改为jsp,在jsp文件中从数据库中读取你的数据,并将读出来的数据,放在“张三”,“123”的地方;并且在jsp文件的头部加上:
<%@page contentType="application/vnd.ms-excel;charset=GBK" %>
我在 网上找了 老半天都没有找到JXL包 你能告诉 在哪里有下载的吗 ?
或者发给我 [email protected]
我那个方法简单可行,我就是用的这种方式,楼主可以试一试!
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
/**
* @param inputFile 输入模板文件路径
* @param outputFile 输入文件存放于服务器路径
* @param dataList 待导出数据
* @throws Exception
* @roseuid:
*/
public void exportExcelFile(String inputFile, String outputFile, List dataList) throws Exception
{
//用模板文件构造poi
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(inputFile));
//创建模板工作表
HSSFWorkbook templatewb = new HSSFWorkbook(fs);
//直接取模板第一个sheet对象
HSSFSheet templateSheet = templatewb.getSheetAt(1);
//得到模板的第一个sheet的第一行对象 为了得到模板样式
HSSFRow templateRow = templateSheet.getRow(0);
//HSSFSheet timplateSheet = templatewb.getSheetAt(1);
//取得Excel文件的总列数
int columns = templateSheet.getRow((short) 0).getPhysicalNumberOfCells();
Debug.println("columns is : " + columns);
//创建样式数组
HSSFCellStyle styleArray[] = new HSSFCellStyle[columns];
//一次性创建所有列的样式放在数组里
for (int s = 0; s < columns; s++)
{
//得到数组实例
styleArray[s] = templatewb.createCellStyle();
}
//循环对每一个单元格进行赋值
//定位行
for (int rowId = 1; rowId < dataList.size(); rowId++)
{
//依次取第rowId行数据 每一个数据是valueList
List valueList = (List) dataList.get(rowId - 1);
//定位列
for (int columnId = 0; columnId < columns; columnId++)
{
//依次取出对应与colunmId列的值
//每一个单元格的值
String dataValue = (String) valueList.get(columnId);
//取出colunmId列的的style
//模板每一列的样式
HSSFCellStyle style = styleArray[columnId];
//取模板第colunmId列的单元格对象
//模板单元格对象
HSSFCell templateCell = templateRow.getCell((short) columnId);
//创建一个新的rowId行 行对象
//新建的行对象
HSSFRow hssfRow = templateSheet.createRow(rowId);
//创建新的rowId行 columnId列 单元格对象
//新建的单元格对象
HSSFCell cell = hssfRow.createCell((short) columnId);
//如果对应的模板单元格 样式为非锁定
if (templateCell.getCellStyle().getLocked() == false)
{
//设置此列style为非锁定
style.setLocked(false);
//设置到新的单元格上
cell.setCellStyle(style);
}
//否则样式为锁定
else
{
//设置此列style为锁定
style.setLocked(true);
//设置到新单元格上
cell.setCellStyle(style);
}
//设置编码
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//Debug.println("dataValue : " + dataValue);
//设置值 统一为String
cell.setCellValue(dataValue);
}
}
//设置输入流
FileOutputStream fOut = new FileOutputStream(outputFile);
//将模板的内容写到输出文件上
templatewb.write(fOut);
fOut.flush();
//操作结束,关闭文件
fOut.close();
}