2016-02-28 7 views
5

Sto esportando html in un file Excel xls utilizzando JavaScript come nella seguente demo: http://js.do/sun21170/84913. Ho usato Google Chrome per eseguire questa demo ma dovrebbe essere eseguito in Edge o IE o FireFox.Excel Esporta come html non riesce a mostrare i bordi in Excel 2016

Il problema è che quando apro il file esportato in Excel 2016, viene visualizzato senza bordi anche se nell'export esportato è presente CSS per mostrare i bordi.

Domanda: C'è un modo per mostrare i bordi quando il file html si apre in Excel? Lo stesso html che si apre in Excel, esegue il rendering con i bordi in un browser, quindi il CSS per i bordi è corretto. La demo allo http://js.do/sun21170/84913 mostra anche l'html che viene salvato nel file Excel.

Html Table with missing Borders

HTML salvato in formato xls

<html> 
    <head> 
     <style> table, td {border:1px solid black} table {border-collapse:collapse}</style> 
    </head> 
    <body> 
     <table> 
     <tr> 
      <td>Product</td> 
      <td>Customer</td> 
     </tr> 
     <tr> 
      <td>Product1</td> 
      <td>Customer1</td> 
     </tr> 
     <tr> 
      <td>Product2</td> 
      <td>Customer2</td> 
     </tr> 
     <tr> 
      <td>Product3</td> 
      <td>Customer3</td> 
     </tr> 
     <tr> 
      <td>Product4</td> 
      <td>Customer4</td> 
     </tr> 
     </table> 
    </body> 
</html> 

risposta

5

ho finalmente trovato la risposta, dopo una ricerca molto. Sembra che in Excel 2016 non piaccia lo spessore del bordo di 1px; funziona qualcosa di più di 1px come 2px o 3px o 4px. Perché Excel 2016 si comporta in questo modo non è chiaro per me.

Una demo che mostra questo è al seguente URL: http://js.do/sun21170/84961

Inoltre, se lo spessore del bordo è specificato nelle altre unità come em o pt o mm, uno spessore di 1em o 1mm o 1pt o 1mm o .5mm funzionerà.

Anche lo spessore del bordo utilizzando i valori predefiniti come thin o medium o thick opere in Excel 2016.

So, the lesson I have learnt is to never specify border thickness of 1 px when using Excel.

I seguenti CSS sono stili diversi che hanno funzionato in Excel 2016 per creare un bordo.

Border spessore maggiore di 1 pixel WORKS

var table = "<html><head><style> table, td {border:2px solid black} 
      table {border-collapse:collapse}</style></head><body><table><tr>"; 

spessore del bordo di 1pt WORKS

var table = "<html><head><style> table, td {border:1pt solid black} 
      table {border-collapse:collapse}</style></head><body><table><tr>"; 

spessore del bordo di 1 mm WORKS

var table = "<html><head><style> table, td {border:1mm solid black} 
      table {border-collapse:collapse}</style></head><body><table><tr>"; 

Spessore bordo di 1em OPERE

var table = "<html><head><style> table, td {border:1em solid black} 
      table {border-collapse:collapse}</style></head><body><table><tr>"; 

spessore del bordo delle OPERE sottili

var table = "<html><head><style> table, td {border:thin solid black} 
      table {border-collapse:collapse}</style></head><body><table><tr>"; 
+0

Grande. Funziona perfettamente.Ho cercato di correggere Excel anno nella tua risposta, ma piccole modifiche non sono consentite in StackOverflow –

+1

Jose, Grazie per averlo indicato. Ho corretto la parte dell'anno per Excel. – Sunil

Problemi correlati