Excel报表的方法,一个过於简单,一个只能用於window平台(因为使用jdbc-odbc bridge),且无法使用到Excel内部的各种公式或是方法,因此,今天介绍一个apache出的元件叫POI,它可以在UNIX或window平台处理word或Excel档案,而不需要依靠window的com,并且可设定储存格格式、列印格式等等;今天我来介绍其中有关资料读取、新增、修改及删除的功能,若各位网友研究好其他的功能,麻烦Email给我(ljj@mlc.edu.tw),分享给大家!
一、需要用的档案:jakarta-poi-1.8.0-dev-20020917.jar
 几乎每天都有1.8.0的最新版(但非正式版),正式的版本是1.5.0
 http://jakarta.apache.org/builds/jakarta-poi/nightly/
 将档案复制到classpath所指到的地方
二、有兴趣的朋友可以参考
  http://jakarta.apache.org/poi/
三、先建立一个叫做book1.xls的Excel档,内容如下
----------------------------------
项目  单价  数量   合计
CPU   7000  5    35000
硬碟  2500  2    5000
记忆体 1600  3    4800
----------------------------------
其中合计的栏位是设定公式,单价*数量

四、资料读取範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %> 。
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
<title>读取Excel档案</title>
</head>
<body>
<table border="1" width="100%">
<%
FileInputStream finput = new FileInputStream(application.getRealPath("/") "book1.xls" );
//设定FileINputStream读取Excel档
POIFSFileSystem fs = new POIFSFileSystem( finput );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
//读取第一个工作表,宣告其为sheet
finput.close();
HSSFRow row=null;
//宣告一列
HSSFCell cell=null;
//宣告一个储存格
short i=0;
short y=0;
//以巢状迴圈读取所有储存格资料
for (i=0;i<=sheet.getLastRowNum();i )
{
out.println("<tr>");
row=sheet.getRow(i);
for (y=0;y<row.getLastCellNum();y )
{
cell=row.getCell(y); . 
out.print("<td>");

//判断储存格的格式
switch ( cell.getCellType() )
{
case HSSFCell.CELL_TYPE_NUMERIC:
out.print(cell.getNumericCellValue());
//getNumericCellValue()会回传double值,若不希望出现小数点,请自行转型为int
break;
case HSSFCell.CELL_TYPE_STRING:
out.print( cell.getStringCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA:
out.print(cell.getNumericCellValue());
//读出公式储存格计算後的值
//若要读出公式内容,可用cell.getCellFormula()
break;
default:
out.print( "不明的格式");
break;
}
out.println("</td>");
}
out.println("</tr>");
}
%>
</table>
</body>
</html>

五、资料新增範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %> .
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
<title>插入资料至Excel档案</title>
</head>
<body>
<%
FileInputStream finput = new FileInputStream(application.getRealPath("/") "book1.xls" );
//设定FileINputStream读取Excel档
POIFSFileSystem fs = new POIFSFileSystem( finput );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
//读取第一个工作表,宣告其为sheet
finput.close();
HSSFRow row=null;
//宣告一列
HSSFCell cell=null;
//宣告一个储存格
short i=4;
row=sheet.createRow(i);
//建立一个新的列,注意是第五列(列及储存格都是从0起算)
cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//设定这个储存格的字串要储存双位元
cell.setCellValue("显示卡");
cell=row.createCell((short)1);
cell.setCellValue(1700); !
cell=row.createCell((short)2);
cell.setCellValue(8);
cell=row.createCell((short)3);
//设定这个储存格为公式储存格,并输入公式
cell.setCellFormula("B" (i 1) "*C" (i 1));
try
{
FileOutputStream fout=new FileOutputStream(application.getRealPath("/") "book1.xls");
wb.write(fout);
//储存
fout.close();
out.println("储存成功<a href='book1.xls'>book1.xls</a>");
}
catch(IOException e)
{
out.println("产生错误,错误讯息:" e.toString());
}
%>
</body>
</html>

六、资料删除、修改範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %>
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
试试看从网页中把表格直接生成Excel,虽然不是直接从sql到excel,不过反而更加方便而且人性化。。 .

网上倒是找到了不少的资料,发现一段javascript的功能实现代码,很不错:
var elTable = document.getElementById("tb");
var oRangeRef = document.body.createTextRange();
oRangeRef.moveToElementText( elTable );
oRangeRef.execCommand( "Copy" ); .

var appExcel = new ActiveXObject( "Excel.Application" );
appExcel.Visible = true;
appExcel.Workbooks.Add().Worksheets.Item(1).Paste();
appExcel = null; 成功的人生,需要自己去经营,别再说了,莫再等了,现在就为自己的人生做好规划,为人生点亮一盏明灯,赢在人生起跑点上。

实现功能就是把id为tb的表格内的数据都生成为excel,我试试了可行,但是放到服务器来运行就是script error的提示,然后网上到处求问,也找了百度空间的几位高手朋友问了下,可是还是不得其法。。不过还是很感谢他们的热心帮助 .

没办法,我只能用别的方法来实现了,其实满喜欢上面的这个javascript的功能的,比较人性化。。可惜我黔驴技穷,无法用上它,哎!~ !

既然我帮客户用jsp写的程序,那么我就还是用jsp来实现这个功能吧。。 版权申明:本站文章均来自网络,如有侵权,请联系028-86262244-215,我们收到后立即删除,谢谢!

于是找到了这么一个方法:
原文出自:http://www.jsp.mlc.edu.tw/viewitem.jsp?itemid=0000000065 根据专家观察,这样的理论和现象都是值得各位站长深思的,所以希望大家多做研究学习,争取总结出更多更好的经验!

***************************************************************************************************
一、将网页资料以excel报表以线上浏览方式呈现
xls651.jsp原始码如下 . 

<%@ page contentType="application/msexcel" %>
<!-- 以上这行设定本网页为excel格式的网页 -->
<%
response.setHeader("Content-disposition","inline; filename=test1.xls");
//以上这行设定传送到前端浏览器时的档名为test1.xls
//就是靠这一行,让前端浏览器以为接收到一个excel档
%>
<html>
<head>
<title>Excel档案呈现方式</title>
</head>
<body>
<table border="1" width="100%">
<tr>
<td>姓名</td><td>身份证字号</td><td>生日</td>
</tr>
<tr>
<td>李玟</td><td>N111111111</td><td>1900/11/12</td>
</tr>
<tr>
<td>梁静如</td><td>N222222222</td><td>1923/10/1</td>
</tr>
<tr>
<td>张惠妹</td><td>N333333333</td><td>1934/12/18</td>
</tr>
</table> ..
</body>
</html> .

二、将网页资料以excel报表以下载的方式呈现
这个jsp档和上一个差不多,只有差别在这一行:
线上浏览的方式: response.setHeader("Content-disposition","inline; filename=test1.xls");
下载的方式: response.setHeader("Content-disposition","attachment; filename=test2.xls");
附注: 1.以上纯以静态网页的方式呈现excel档,配合资料库,你便能以动态的报表方式做出excel报表了
2.完全不用安装任何元件,或只能受限於win平台,一个简单的方式解决你的报表需求
3.聪明的你,应该能举一反三,知道如何将网页资料以word的doc格式展现了吧!
(是不是只要把contentType改成"application/msword"以及filename的副档名改成.doc就可以了!) ..

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hlhemiao/archive/2009/12/23/5060619.aspx

JSP生成Excel报表文档相关推荐

  1. word模板生成word报表文档

    主要功能为根据word模板生成word报表文档,注意引用Interop.Word.dll; 首先要生成word程序对象 Word.Application app = new Word.Applicat ...

  2. C#根据word模板生成word表格报表文档

    主要功能为根据word模板生成word报表文档,注意引用Interop.Word.dll; 首先要生成word程序对象 Word.Application app = new Word.Applicat ...

  3. C#生成Excel报表 用MyXls组件生成更完美

     在后台调用excel组件,生成Excel,虽然可以对Excel文件进行完全控制,可以生成任何复杂的格式,但是有个很大的缺点,这种方式会产生很多Excel进程,很难完全清除掉,特别是在出错的时候,可能 ...

  4. java导出excel报表_java生成excel报表文件示例

    此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; ...

  5. excel导出 服务器运行失败,用vc生成excel报表,提示“创建excel服务器失败”,该如何处理...

    当前位置:我的异常网» VC/MFC » 用vc生成excel报表,提示"创建excel服务器失败", 用vc生成excel报表,提示"创建excel服务器失败" ...

  6. 性能碾压 POI !利用模板语法快速生成 Excel 报表

    本期讲师:刘鹏 GcExcel项目组,核心开发者 Hello,大家好,本期葡萄城技术公开课,将由我来为大家带来<性能碾压 POI !利用模板语法快速生成 Excel 报表>的技术分享. 本 ...

  7. python自动汇总表格_用Python自动生成Excel报表

    作者 / 来源:林骥(ID:linjiwx) 01 安装和导入模块 以 Python 中的 openpyxl 模块为例,它能够读取和修改 Excel 文件,如果你还没有安装,可以通过以下命令进行安装: ...

  8. 用Python自动生成Excel报表

    在日常工作中,可能会有一些重复无聊的任务,比如说,从 Excel 或数据库中收集一些数据,设置相应的数据格式并做成报表. 类似这种重复无聊的任务,我们完全可以交给 Python 去自动完成,只要第一次 ...

  9. 生成数据库设计文档小技巧

    目录 生成数据库设计文档小技巧 利用数据库自身功能生成excel和word文档 使用的软件环境说明 查询所有表名 查询所有列名 设置excel 生成数据库设计文档小技巧 利用数据库自身功能生成exce ...

最新文章

  1. 使用条件卷积进行实例和全景分割
  2. python数据模型的意义_Python 数据模型
  3. 人类“换头术”现在就是一场炒作 但医学界不会放弃研究
  4. ubuntu12.04升级php5.4至。。5.5
  5. js最小化浏览器_Handtrack.js 开源:3行JS代码搞定手部动作跟踪
  6. 数据中心空调施工工序工艺管理要点
  7. 【Oracle】三种方式查看SQL语句的执行计划
  8. hibernate 联合主键
  9. python字符串操作方法_python字符串常用操作方法
  10. python的简洁运算符_Python实现的简单算术游戏实例 python中算数运算符都有哪些...
  11. 灵悟礼品网上专卖店——画出E-R图
  12. 双臂Matlab仿真建模:正运动学
  13. Java设计模式(思维导图)
  14. 统计学中p值计算公式_统计学中P值的计算!
  15. 关于列表的一些操作函数
  16. 随机梯度下降法、牛顿法、冲量法、AdaGrad、RMSprop以及Adam优化过程和理解
  17. 使用计算属性实现购物车功能效果(商品数量增减、单选多选计算金额和总价,)
  18. Hibernate 3.6.10 jar包下载链接
  19. UKN服务器找不到,在windows下用ppk后缀文件登陆远程服务器
  20. SDS很好,但处理器需“减负”!

热门文章

  1. creo导出零件点坐标时没有点菜单
  2. qq人脸更换_如何画出合理自然的漫画人脸?
  3. C#实现自动发送邮件,以及问题解决(SMTP邮箱服务器使用QQ的为例)
  4. WF4.0 基础篇 (五) 数据的传递 Variable变量
  5. php 导出mysql csv 乱码_php导出csv文件打开乱码的解决方法
  6. /\/\/\/(一个脑筋急转弯?)
  7. BPR-贝叶斯个性化排序+算法
  8. 小马哥----高仿苹果8p 6735机型s89p主板 拆机图示
  9. JavaScript内置对象 之 Math数学对象
  10. iOS中 喷枪打字动画的实现