有没有办法让HTML5 canvas显示预览wordexcelpowerpoint 文档

有没有办法让HTML5 canvas显示预览wordexcelpowerpoint 文档,第1张

目前找到的几种方式:

1.像以前的百度文库那样,先转换成flash,然后放在网页上。

说明:使用软件OpenOffice/LibreOffice,swftools。

优点:在国内,由于Flash安装量很大,而且很多人用IE和Chrome内核的浏览器,所以是可以查看的。

缺点:OpenOffice/LibreOffice转换的结果可能会丢失格式/排版(我没试过所以不知道会不会),而且比较耗服务器资源,如果浏览器没装Flash就没法查看文档了,尤其是移动端。

2.转换成PDF,然后用Mozilla的pdf.js查看。

说明:转换成PDF的方法可以用OpenOffice/LibreOffice,也可以用七牛的第三方服务“文档转换”(由亿方云提供)。

优点:如果是把文件存放在七牛云,用在线的服务会比较有保障,加载速度也快。

缺点:收费,不过费用很低廉,pdf.js可能比较大,加载相对慢点,放到七牛上面会好些,对移动端支持不好。

3.转换成HTML,像现在的百度文库那样。

说明:使用PHPOffice和PDFtoHTML将文档转换成HTML直接在浏览器输出,类似现在的百度文库。

优点:浏览器无需安装任何插件,也不用担心兼容性问题,还支持移动端。

缺点:可能会丢失格式,而且用户可以直接拷贝文档内容,如果是扣积分下载的话,可能达不到目的。

js 调用winAPI  html5 没这功能

具体能容自己修改

<html xmlns="

<meta charset="UTF-8">

<head>

     <title>Untitled Page</title>

</head>

<script language="javascript" type="text/javascript">

function importXLS(fileName)

{  

     objCon = new ActiveXObject("ADODB.Connection")

     objCon.Provider = "Microsoft.Jet.OLEDB.4.0"

     objCon.ConnectionString = "Data Source=" + fileName + "Extended Properties=Excel 8.0"

     objCon.CursorLocation = 1

     objCon.Open

     var strQuery

     //Get the SheetName

     var strSheetName = "Sheet1$"

     var rsTemp =   new ActiveXObject("ADODB.Recordset")

     rsTemp = objCon.OpenSchema(20)

     if(!rsTemp.EOF)

     strSheetName = rsTemp.Fields("Table_Name").Value

     rsTemp = null

     rsExcel =   new ActiveXObject("ADODB.Recordset")

     strQuery = "SELECT * FROM [" + strSheetName + "]"

     rsExcel.ActiveConnection = objCon

     rsExcel.Open(strQuery)

     while(!rsExcel.EOF)

     {

     for(i = 0i<rsExcel.Fields.Count++i)

     {

     alert(rsExcel.Fields(i).value)

     // 在这里为你的表格设计样式

     }

     rsExcel.MoveNext 

     }

     // Close the connection and dispose the file

     objCon.Close

     objCon =null

     rsExcel = null

}

</script>

</head>

<body>

<input type="file" id="f" />

<input type="button" id="b" value="import" onclick="if(f.value=='')alert('请选择xls文件')else importXLS(f.value)" />

</body>

</html>

在IE中使用

Apache poi 和jxl 都可以

jxl是一个韩国人写的java *** 作excel的工具, 在java的开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI(即jxl)。jxl功能相对POI比较弱一点。

但jExcelAPI对中文支持非常好,API是纯Java的, 不依赖Windows系统,即使运行在Linux下,也同样能够正确的处理Excel文件。 需要补充说明的是,jxl对图形和图表的支持很有限,而且 仅仅识别PNG格式的图片。

对jxl和POI进行一次简单的比较:

POI不支持写入图片(jxl支持,但是只支持png格式的图片)

POI对公式的支持比较好,jxl对公式的支持不如POI。所以财务软件用POI较好

多少数据量时出现内存溢出:

使用POI:运行到2800条左右就报内存溢出,使用jxl到3000条左右报内存溢出

读取excel速率:POI优于jxl

插入数据速率:jxl优于POI


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7277904.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存