300分求解,用jacob把excel转为html页。高手请进!

hjkds 2004-08-23 08:19:43
如题。
不需要word转为html的例子,本人已经实现。
想弄明白
Dispatch.invoke(workbook,"SaveAs", Dispatch.Method, new Object[]{otFile,new Variant(8)}, new int[1]);中,几个参数的应用。
...全文
312 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
rocketliu8899 2004-08-23
xuexi
回复
hjkds 2004-08-23
这个就是jexcel类,来读取和写入excel的包了。
本来我也有这种想法,用jexcel去读取excel的网格数据,再生成table,但是这样子比较麻烦。
因为我在网络上有看到过用jacob的com连接桥直接调用office里的saveas函数转化word为html成功,所以想知道怎么用这个函数转化excel为html.我想原理应该一样,只是我不清楚调用函数具体参数的意思。
Dispatch.invoke(workbook,"SaveAs", Dispatch.Method, new Object[]{otFile,new Variant(8)}, new int[1])

谢谢umljsp(夜未央天未白)的热心帮助。
回复
umljsp 2004-08-23
对不起,我还是没有看清你的问题,在这里我检讨,我测试的是html转excel输出。
java解析excel我倒是做过,也不知道能不能帮你:(
建议你试试这个api
http://www.andykhan.com/jexcelapi/

实在是抱歉。
回复
hjkds 2004-08-23
另外请问,如果客户机子上没有安装excel,那么这个EXCEL文件还能作为HTML输出吗?
(这个是关键)
回复
hjkds 2004-08-23
首先要感谢 umljsp(夜未央天未白) 为我找来了这篇文章
请问,如果用这种方法的话,那么在IE中显示的EXCEL是以TABLE的形式体现的吗?
可不可以给我你的测试代码,谢谢!
my email:hjkds@hotmail.com
回复
umljsp 2004-08-23
以上出自www.cnjsp.org中axman的大作,偷拿至此帮助大家解决问题,希望axman能够见谅。

to:hjkds
我已经测试过,可以用上面的方法把excel文件作为html输出,而不是用ie打开。
回复
umljsp 2004-08-23
尽管我们整天都在说MS的这样不是那样不是,但当我发现IE是这样一以客户为中心的思想设计,我不得不佩服MS的设计思想是那么伟大.

IE的设计思想是"客户总是对的",不管你的HTML标签写得多混乱,它都试图努力地解释它,当然如果实在不能解释,这绝对不是IE的问题,试想如果你象XML那样写HTML,IE能不认识吗(如果真的发生这样的事你就可以从MS得到一笔奖金了)

事实上,IE还在试图努力地做文档格式的解释,而且达到惊人的地步.
以前我听到有人说用JSP/SERVLET生成DOC,XLS什么的我都笑话他们根本不懂HTTP协议,因为那只是一个已经存在的DOC或XLS让JSP/SERVLET读出后输出给你而已.不过我发现原来我自己才好笑.事实上,HTTP能做的也只能如此.但如果接收者是IE,看看它会如何做:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> TEST </TITLE>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD width=100>aaaa</TD><TD>bbbb</TD>
</TR><TR>
<TD>cccc</TD><TD>dddd</TD>
</TR>
</TABLE>
</BODY>
</HTML>
这是一段纯的HTML,我们把它用JSP作为excel输出:

<%@page contentType="application/msexcel"%>
<%
response.setHeader("Content-disposition","inline; filename=test.xls");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> TEST </TITLE>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD width=100>aaaa</TD><TD>bbbb</TD>
</TR><TR>
<TD>cccc</TD><TD>dddd</TD>
</TR>
</TABLE>
</BODY>
</HTML>
打开IE访问看看,看到什么了?一个完全正确的EXCEL啊,你设置的格式都还反映出来,比如td的width=100,那么EXCEL的单元格长度就会显示成100,这说明IE是在做转换而只不简单地解释.其它属性你可以把HTML的TABLE的所有属性都加上去然后看看基本上都能反映出来.

如果你把它作为DOC输出也一样,当然如果仅仅是表格而是一篇正常的HTML文件,哈,在DOC中连排版都在了(PPT我没有试.)

难道这种功能不值得激动吗?什么?你早就知道了,你牛,算我白说.不过你不要高兴太早.
试试中文问题?这里的中文问题可不是一般的乱码问题.
这里有中文问题可不是好解决的,我调用了JDB底层跟踪,源码返编译,花了N多个ms(ms可不是微软,就是毫秒啦)才从根本上解决,先留一手了.

哈哈,如果你是网络应用,再也不用什么POI的插件了,直接写HTML操作HTML吧,不会?那就别往下看了,然后输出去让IE给你做得到.当然在APPLICATION中没法子了.
回复
hjkds 2004-08-23
用IE打开excel会把excel先载到本地的临目录中去。
我就不是希望这样子才要转化为html格式的。
回复
AHUA1001 2004-08-23
实际很简单,把excel用IE打开就可以了。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-23 08:19
社区公告
暂无公告