我有一个包含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文件的示例行可以在下面看到:
因此,我的问题是,如何才能正确地将这些坐标写入excel?我在几个博客上搜索了分配但却找不到解决方案。谢谢你的时间和支持。
更新 使用上面的excel导出方法,每当导出xls文件时,我在MS Excel中打开文件时会收到以下通知:
点击&#34;是&#34;后,它会显示excel数据,但纬度/经度的格式不正确,如上所述。
答案 0 :(得分:2)
您必须为xml电子表格格式将单元格的数据类型指定为字符串。你的表应该是这样的:
<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文件并将其显示在工作表中。
答案 1 :(得分:0)
这有一个问题,因为excel(mso-number-format)不支持这种类型的数字。我会去将其格式化为文本,如果在您的情况下可行的话。
请参阅此链接了解可用的reformatting in excel以及{{3}}的此链接。
尝试添加这些css类
.text {
mso-number-format: "\@";
}
.number {
mso-number-format: General;
}
并将这些css类提供给您的数据字段。
<div class="text">11</div>
<div class="number">11.0</div>
答案 2 :(得分:0)
只需从JS导出为CSV-File,并使用syntax =“[NUM]”格式化坐标。 像这样:
ul.loteos-archive li .loteos-square-bg{
height: 400px;
width: 100%;
-webkit-box-shadow: -5px 4px 0px -4px blue;
-moz-box-shadow: -5px 4px 0px -4px blue;
box-shadow: -5px 4px 0px -4px blue;
}
ul.loteos-archive li .loteos-square-bg a.thumb{
width : 100%;
height : 400px;
background-repeat: no-repeat;
background-size: cover;
display: block;
}
在Excel中: