javascript操作excel文件方法详解

发布时间:2020-08-26编辑:脚本学堂
本文介绍了javascript操作excel文件的方法,以及asp操作excel生成数据表的方法、ASP操作Excel生成Chart图的方法,感兴趣的朋友参考下。

一,javascript操作excel文件,ActiveXObject("Excel.Application")
这个是vbscript的,方法在javascript里都是通用的,不过语法略有不同希望对你有帮助
1、 建立Excel对象 set objExcelApp = CreateObject("Excel.Application") objExcelApp.DisplayAlerts = false 不显示警告 objExcelApp.Application.Visible = false 不显示界面
2、 新建Excel文件 objExcelApp.WorkBooks.add set objExcelBook = objExcelApp.ActiveWorkBook set objExcelSheets = objExcelBook.Worksheets set objExcelSheet = objExcelBook.Sheets(1)
3、 读取已有Excel文件 strAddr = Server.MapPath(".") objExcelApp.WorkBooks.Open(strAddr & "TempletTable.xls") set objExcelBook = objExcelApp.ActiveWorkBook set objExcelSheets = objExcelBook.Worksheets set objExcelSheet = objExcelBook.Sheets(1)
4、 另存Excel文件 objExcelBook.SaveAs strAddr & "TempTable.xls"
5、 保存Excel文件 objExcelBook.Save (笔者测试时保存成功,页面报错。)
6、 退出Excel操作 objExcelApp.Quit 一定要退出 set objExcelApp = Nothing

二、 ASP操作Excel生成数据表
1、 在一个范围内插入数据 objExcelSheet.Range("B3:k3").Value = Array("67", "87", "5", "9", "7", "45", "45", "54", "54", "10")
2、 在一个单元格内插入数据 objExcelSheet.Cells(3,1).Value="Internet Explorer"
 3、 改变单元格文字颜色 objExcelSheet.Cells(3,1).Font.Color=vbred
4、 单元格四周画线条 objExcelSheet.Cells(3.1).Borders(1).LineStyle =1 objExcelSheet.Cells(3.1).Borders(2).LineStyle =1 objExcelSheet.Cells(3.1).Borders(3).LineStyle =1 objExcelSheet.Cells(3.1).Borders(4).LineStyle =1
 区域中间画线条 objExcelSheet.Range(“A1:G7”).Borders(7).LineStyle =1 objExcelSheet.Range(“A1:G7”).Borders(8).LineStyle =1 8、
单元格设定背景色 objExcelSheet.Cells(3.1).Interior.colorindex=17 9、
合并单元格 objExcelSheet.Range(“A1:G7”).Merge 10、
设置左右对齐方式 2 left 3 middle 4 right objExcelSheet.Range("A1").HorizontalAlignment = 2 11、
设置上下对齐方式 2 为居中 objExcelSheet.Range("A1")..VerticalAlignment = 2

三、 ASP操作Excel生成Chart图
1、 创建Chart图 objExcelApp.Charts.Add
 2、 设定Chart图种类 objExcelApp.ActiveChart.ChartType = 97 注:二维折线图,4;二维饼图,5;二维柱形图,51
3、 设定Chart图标题 objExcelApp.ActiveChart.HasTitle = True objExcelApp.ActiveChart.ChartTitle.Text = "A test Chart"
4、 通过表格数据设定图形 objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range("A1:k5"),1
5、 直接设定图形数据(推荐) objExcelApp.ActiveChart.SeriesCollection.NewSeries objExcelApp.ActiveChart.SeriesCollection(1).Name = "=""333""" objExcelApp.ActiveChart.SeriesCollection(1).Values = "={1,4,5,6,2}"
6、 绑定Chart图 objExcelApp.ActiveChart.Location 1
7、 显示数据表 objExcelApp.ActiveChart.HasDataTable = True
8、 显示图例 objExcelApp.ActiveChart.DataTable.ShowLegendKey = True

四、服务器端Excel文件浏览、下载、删除方案浏览的解决方法很多,“Location.href=”,“Navigate”,“Response.Redirect”都可以实现,建议用客户端的方法,原因是给服务器更多的时间生成Excel文件。下载的实现要麻烦一些。用网上现成的服务器端下载组件或自己定制开发一个组件是比较好的方案。

另外一种方法,在客户端操作Excel组件,由客户端操作服务器端Excel文件另存至客户端。这种方法要求客户端开放不安全ActiveX控件的操作权限,考虑到通知每个客户将服务器设置为可信站点的麻烦程度建议还是用第一个方法比较省事。

删除方案由三部分组成:
A:同一用户生成的Excel文件用同一个文件名,文件名可用用户ID号或SessionID号等可确信不重复字符串组成。这样新文件生成时自动覆盖上一文件。

B: 在Global.asa文件中设置Session_onEnd事件激发时,删除这个用户的Excel暂存文件。

C:在Global.asa文件中设置Application_onStart事件激发时,删除暂存目录下的所有文件。

注:建议目录结构 Src 代码目录 Templet 模板目录 Temp 暂存目录 六、附录出错时Excel出现的死进程出现是一件很头疼的事情。
在每个文件前加上“On Error Resume Next”将有助于改善这种情况,因为它会不管文件是否产生错误都坚持执行到“Application.Quit”,保证每次程序执行完不留下死进程。