我想转换一个巨大的Excel工作簿(与多个选项卡)和less数列和行隐藏在网页上

当我试图在HTML中保存Excel表格并显示时,我遇到了一些问题:

  1. 每个单元格中的数字都是扭曲的
  2. 显示隐藏的行和列(我希望它们保持隐藏状态)
  3. 我的Excel工作表的顶行被冻结,我想让他们保持冷静。
  4. 工作表每天更新,我希望更改也反映在Web中。

你可以build议一种方法,而不是在HTML中保存Excel表格? 任何其他方式,我可以开始这个项目?

PS:我掌握HTML,CSS,JavaScript的知识。

我是否需要学习任何额外的技能来拉动这个项目?

如果您正在运行IIS,或者可以在您的服务器上运行.NET代码,则可以使用Open XML SDK。 有很多 使用SDK 的例子 。 显然,如果你使用的是Apache,它甚至可以和Mono一起工作 。

如果没有,如果你有一些机器可以到达Excel文件并将文件复制到你的Web服务器并且你可以运行一个计划任务,你可以在该机器上安排一个任务,使用Open XML SDK进行翻译将Excel文件转换为HTML,然后将该HTML上传到服务器。

它不一定是一个完整的页面; 它可以只是你需要的HTML的一部分。 然后,您可以在页面上使用一些JavaScript来触发AJAX请求以获取HTML文件。 无论您的服务内容是由在IIS下运行的代码dynamic生成,还是由其他位置的代码生成的静态文件推送到服务器,都是如此。

你可能有这样的东西:

<!-- page where the spreadsheet should go --> <div id="put-excel-worksheet-here"></div> 

然后:

 $.ajax({ url: "/path/to/converted-data-partial-html.html" , success: function(excelHtml) { $("#put-excel-worksheet-here").append($(excelHtml)); } }); 

而您的ASP.NET页面响应或计划任务将您的Excel文件转换为像<table><thead><tr><th id='column-one-th'>...

无论哪种方式,我build议你与文件的副本,而不是原来的工作,因为我发现办公室可以得到一个挑剔的文件一次打开在两个地方。

至于冻结顶行,这里是一个例子的小提琴。

祝你好运!

编辑:作为将单个页面上的数百万个单元格的单元格的替代品,将Excel数据加载到关系数据库(如MySQL或Microsoft SQL Server)中可能是有意义的,并执行一些自定义的Web开发来将数据从中抽出分页和filter和其他漂亮的报告function。

如果Excel文件中的数据来自另一个系统,则可以设置系统到系统的集成。 如果不是通过集成,Open XML SDK就是这样做的。 根据上面的评论,你没有上百万行,所以这个build议没有意义。

编辑:哦,我build议你的计划任务在人们不太可能使用该系统的时间运行。 例如,如果您的用户全部位于相邻的几个时区,请在最东部时区的凌晨3:00运行该任务。