javascript - 如何使用正确的纬度/经度格式将 html 表导出到 excel?

标签 javascript excel formatting

我有一个包含 2 列纬度和经度的 HTML 表格。我可以使用以下 JavaScript 函数轻松地将此表导出到 excel:

function downloadExcel() {
var tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel"> <meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
tab_text = tab_text + '<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>';

tab_text = tab_text + '<x:Name>Results</x:Name>';

tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>';
tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';

tab_text = tab_text + "<table border='1px'>";
tab_text = tab_text + $('#gcResults_table').html();
tab_text = tab_text + '</table></body></html>';

var data_type = 'data:application/vnd.ms-excel; charset=UTF-8;base64,';

var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");

if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
    if (window.navigator.msSaveBlob) {
        var blob = new Blob([tab_text], {
            type: "application/csv;charset=utf-8;"
        });
        navigator.msSaveBlob(blob, 'Results.xls');
    }
} else {
    $('#test').attr('href', data_type + ', ' + encodeURIComponent(tab_text));
    $('#test').attr('download', 'Results.xls');
}
}// END of downloadExcel()

它工作得很好。但是,当 excel 文件导出表格时,纬度和经度未以正确格式显示。 excel 文件的示例行如下所示:

enter image description here

因此,我的问题是,如何将这些坐标正确写入excel?我在几个博客上搜索了 allot,但未能找到解决方案。感谢分配您的时间和支持。

更新: 使用上述 excel 导出方法,每当导出 xls 文件时,当我在 MS Excel 中打开该文件时,会收到以下通知:

enter image description here

点击"is"后,它显示了 excel 数据,但纬度/经度的格式不正确,如上所述。

最佳答案

对于 xml 电子表格格式,您必须将单元格的数据类型指定为 string。您的表格应如下所示:

<Table border='1px'>
    <Column ss:Width="75" ss:AutoFitWidth="0"/>
    <Row>
      <Cell>
          <Data ss:Type="String">48.210221, 16.390036</Data>
      </Cell>
    </Row>
</Table>

对于 mhtml 文件格式,一个简单的表格,如以下代码,对我来说工作正常:

<html xmlns:x="urn:schemas-microsoft-com:office:excel"> 
<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">
  <head>
    <xml>
      <x:ExcelWorkbook>
     <x:ExcelWorksheets>
            <x:ExcelWorksheet>
        <x:Name>Results</x:Name>
        <x:WorksheetOptions>
            <x:Panes></x:Panes>
        </x:WorksheetOptions>
        </x:ExcelWorksheet>
     </x:ExcelWorksheets>
       </x:ExcelWorkbook>
    </xml>
  </head>
  <body>
     <table border='1px'>
        <tr>
           <td >48.210221, 16.390036</td>
        </tr>

     </table>
  </body>
</html>

确保文件中确实有这些值。可能在将值保存到文件之前对其进行了转换。

您收到的警告是因为您没有保存真正的 Excel (xls) 文件。您有一个以 xls 扩展名保存的 html 文件。 MS Excel 知道读取 HTML 文件并将它们显示到工作表中。

关于javascript - 如何使用正确的纬度/经度格式将 html 表导出到 excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43370543/

相关文章:

javascript - 只有一个列表元素在页面加载时排在第一位

javascript - AJAX POST 未收到正确的值

excel - DialogSheets ("Name").Labels.Visible = True 不适用于 Excel VBA 中的所有 DialogSheets

excel - .选定的命令形式 Excel

python - 如何打印不带括号的 Numpy 数组?

javascript - 没有图像时隐藏缩略图 div

javascript - NPM package.json 基/根属性?

vba - 如何使用宏根据另一列中的同一月份对一列中的数据求和

java - Formatter VS DateFormat 不一致

c++ - 如何通过按下按钮来格式化 QTextEdit 中的选定文本