如何导出html表格以正确的纬度/经度格式excel?

我有一个包含2列纬度和经度的HTML表格。 我可以很容易地使用下面的JavaScript函数将这个表导出为ex​​cel:

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文件的示例行:

在这里输入图像描述

因此,我的问题是,我怎样才能正确地写这些坐标来优秀? 我已经search了几个博客分配,但一直没能find解决办法。 感谢您的时间和支持。

更新:使用上面的Excel导出方法,无论何时导出一个xls文件,当我在MS Excel中打开文件时,我得到以下通知:

在这里输入图像说明

点击“是”后,会显示excel数据,但是纬度/经度格式不正确,如上所述。

您必须将单元格的数据types指定为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文件并将其显示在工作表中。

有一个问题,因为Excel(MSO数字格式)不支持这种types的数字。 如果可能的话,我会去格式化为文本

看到这个链接可用的MSO数字格式和这个链接在Excel中重新格式化

尝试添加这些CSS类

 .text { mso-number-format: "\@"; } .number { mso-number-format: General; } 

把这些CSS类给你的数据字段。

 <div class="text">11</div> <div class="number">11.0</div> 

只需从JS导出为CSV文件,并使用语法=“[NUM]”格式化坐标。 喜欢这个:

 Name;Lat;Lng Test1;="32.056717";="11.335333" Test2;="12.056717";="19.335333" 

在Excel中:

在这里输入图像说明