导出HTML内容,以在JavaScript中优秀

我将Html内容导出到Excel中,并使用JavaScript下载Excel。 它工作正常,但我的要求是没有网格线下载Excel,我也想呈现内容为我的HTML在浏览器中显示。 有没有任何选项或build议来呈现没有网格线的Excel中的HTML内容?

以下是我的示例Html:

<div> <div style="float:left"> NAME:some text </div> <div style="float:right"> Number:some number </div> </div> <div> <table> <tr> <th>Company</th> <th>Contact</th> <th>Country</th> </tr> <tr> <td>Alfreds Futterkiste</td> <td>Maria Anders</td> <td>Germany</td> </tr> <tr> <td>Centro comercial Moctezuma</td> <td>Francisco Chang</td> <td>Mexico</td> </tr> <tr> <td>Ernst Handel</td> <td>Roland Mendel</td> <td>Austria</td> </tr> <tr> <td>Island Trading</td> <td>Helen Bennett</td> <td>UK</td> </tr> <tr> <td>Laughing Bacchus Winecellars</td> <td>Yoshi Tannamuri</td> <td>Canada</td> </tr> <tr> <td>Magazzini Alimentari Riuniti</td> <td>Giovanni Rovelli</td> <td>Italy</td> </tr> </table> </div> 

和我的Excel表: 在这里输入图像描述

我不希望这些网格单元格和我的内容不呈现为Html内容。

有没有什么办法可以在JavaScript中没有网格线的情况下准备好HTML数据?

你只需添加这个:

 <meta http-equiv="content-type" content="text/plain; charset=UTF-8"/> 

在文件的头部,它将开始按预期工作:

 <script type="text/javascript"> var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>' , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) } , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} window.location.href = uri + base64(format(template, ctx)) } })() </script> 

小提琴在这里。

我想你可以使用Apache POI库来更新excel文件。 有关更多详细信息,请参阅https://poi.apache.org/

关于使行消失,请参阅http://apache-poi.1045710.n5.nabble.com/how-to-make-the-gridline-disappeared-by-API-td2297448.html

 Workbook workbook = new HSSFWorkbook(); Sheet sheet = workbook.createSheet("sheet"); sheet.setDisplayGridlines(false); 

更多详细信息,请参阅使用Apache POI删除特定Excel工作表上的所有边界