2011-06-20 33 views
6

我想通过MS Excel 2010将Excel电子表格(.xls)转换为html,但我想保留网格线。所以我会突出显示所有单元格 - >格式单元格 - >轮廓和内部边框预设,正常边框,黑色,然后执行导出。用IE和Firefox浏览,边界就在那里。但是,在使用chrome查看时,边框消失了,而我改为看到style =“border-left:none;”每个td标签内。谷歌Chrome中缺少MS Excel到HTML网格线

这样做的目的是为网页制作excel电子表格预览,而且它看起来像导出到html的路线可能是最简单的。有谁知道更好的路线?

我在想我唯一的解决方案可能是专门为Chrome浏览器检查javascript,并在所有td标签上编辑边框左/右/顶部/底部样式。有什么我失踪?


此外,有没有办法在HTML版本中保留行号和列字母标题?

回答

4

您可以对源代码为border-left:noneborder:none等的所有实例执行查找/替换操作...然后使用CSS样式确保网格线保留数据。假设它导出为一个表,使用

<style type="text/css"> 
    table{ 
     border: 2px solid #000000; 
    } 
    td{ 
     border: 1px solid #000000; 
    } 
</style> 

(格式自己的口味和喜欢)

至于行数和列标题,这取决于你有多少数据。如果没有太多,最简单的方法就是手工输入标题和数字。如果它很多,最好的方法是使用javascript或服务器端语言为您打印行标题。

+0

使用chrome的开发工具,我发现该样式适用于表格元素,但不适用于td元素。 td元素上有class =“xl165”的类名,当它们被移除时允许显示td边框(除了内联边框左边部分,该部分也必须从内联样式属性中移除)。 简而言之,通过javascript,可以将样式注入已存在的内联样式表中,然后从每个td标签中删除该类名称和内联边框样式。需要在工作表框架中的所有选项卡上设置onclick来调用此代码。 –

+1

或者你可以自己修改'xl165'类,并且使用他们给所有这些单元格的名称,并在css中用你自己的方式设计它的名字......这可能不那么凌乱 – alquatoun

+0

这会是一个很大的如果不是每个td标签上的单个内联边框样式,则更有效的解决方案。 ------ 我刚刚意识到我可能只是在生成电子表格并将其导出后,在服务器上为每个工作表页面执行一次字符串替换为“border *:none”为“border:1px solid#000”到html。当我通过python或其他任何东西来搞乱它的时候,我还可以计算tr标签的数量,然后在单个tr标签中找到最大数量的td标签,然后从那里生成行号和列标题。基本上10到基地26为头。 –

1

另一种方式是访问您的谷歌驱动器,导入您的xls文件,然后将其作为html文件下载。生成的网页在Chrome和IE中都能很好地工作。

3

一个非常懒惰的修复方法是在保存为网页之前在Excel中选择较大尺寸的边框线。这是前段时间的问题,这是我找到的修复,我从那以后就使用了它,我保留了一个曲棍球池,每天在球队统计数据中输出排名,并且使用这个技巧在Chrome中渲染得很好。