欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Javascript在客户端导出multi-sheet excel

发布时间:2025/6/17 java 62 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Javascript在客户端导出multi-sheet excel 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

客户要求能导出多sheet的excel,这样就不用人工combine了。google一下,找到了一些solution。最后用了ActiveXObject的方案。原理是先把数据存在table里,再把table的数据装入excel。
要在Internet Options里把SecurityCustom level的Initialize and script ActiveX controls not marked as safe for scripting设为Prompt/Enable。
同时客户端要装excel:)    

function ExportToExcel()
      
{
            
var sHTML1,sHTML2,sHTML3,sHTML4,sHTML5,sHTML6,sHTML7,oExcel,oBook;
            sHTML1 
= document.all("TableSummary").outerHTML;
            sHTML2 
= document.all("TableToBeSubmitted").outerHTML;
            sHTML3 
= document.all("TableToBeCosted").outerHTML;
            sHTML4 
= document.all("TableToBeQuoted").outerHTML;
            sHTML5 
= document.all("TableToBeApproved").outerHTML;
            sHTML6 
= document.all("TableToBeSent").outerHTML;
            sHTML7 
= document.all("TableToBeDispositioned").outerHTML;
            
//Open excel application
             oExcel = new ActiveXObject("Excel.Application");
            
//the excel opened has already 3 sheets by default 
             oBook1 = oExcel.Workbooks.Add();
             
//Add 4 more sheets 
             oBook1.Worksheets.Add();
             oBook1.Worksheets.Add();
             oBook1.Worksheets.Add();
             oBook1.Worksheets.Add();
             
//Assign sheets to variables
             var sheet1,sheet2,sheet3,sheet4,sheet5,sheet6,sheet7;
             sheet1 
= oBook1.Worksheets(1);
             sheet2 
= oBook1.Worksheets(2);
             sheet3 
= oBook1.Worksheets(3);
             sheet4 
= oBook1.Worksheets(4);
             sheet5 
= oBook1.Worksheets(5);
             sheet6 
= oBook1.Worksheets(6);
             sheet7 
= oBook1.Worksheets(7);
             
//Set sheet name
             sheet1.Name = "Summary";
             sheet2.Name 
= "ToBeSubmitted";
             sheet3.Name 
= "ToBeCosted";
             sheet4.Name 
= "ToBeQuoted";
             sheet5.Name 
= "ToBeApproved";
             sheet6.Name 
= "ToBeSent";
             sheet7.Name 
= "ToBeDispositioned";
             
//Set content for each sheet
             oBook1.HTMLProject.HTMLProjectItems(3).Text = sHTML1;
             oBook1.HTMLProject.HTMLProjectItems(
4).Text = sHTML2;
             oBook1.HTMLProject.HTMLProjectItems(
5).Text = sHTML3;
             oBook1.HTMLProject.HTMLProjectItems(
6).Text = sHTML4;
             oBook1.HTMLProject.HTMLProjectItems(
7).Text = sHTML5;
             oBook1.HTMLProject.HTMLProjectItems(
8).Text = sHTML6;
             oBook1.HTMLProject.HTMLProjectItems(
9).Text = sHTML7;
             oBook1.HTMLProject.RefreshDocument();
             oExcel.Visible 
= true;
             oExcel.UserControl 
= true;
             
//optional,prompt to ask save when quit
             ////oExcel.ActiveWorkbook.SaveAs("C:\\TEST.XLS");
             //quit excel app 
             //oExcel.Application.Quit();
             //Close the excel.exe process 
             oExcel = null;  
      }

转载于:https://www.cnblogs.com/zhangz/articles/1132294.html

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的Javascript在客户端导出multi-sheet excel的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。