2011-06-20 77 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中渲染得很好。