簡體   English   中英

如何使用正確的緯度/經度格式將html表導出為ex​​cel?

[英]How to export html table to excel with correct latitude/longitude format?

我有一個HTML表,包含2列緯度和經度。 我可以使用以下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中打開文件時會收到以下通知:

在此輸入圖像描述

單擊“是”后,它會顯示excel數據,但緯度/經度的格式不正確,如上所述。

您必須將單元格的數據類型指定為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文件並將其顯示在工作表中。

這有一個問題,因為excel(mso-number-format)不支持這種類型的數字。 如果你的情況可以,我會把它格式化為文本

請參閱此鏈接了解可用的mso-number-formats以及此鏈接,以便在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-File,並使用syntax =“[NUM]”格式化坐標。 像這樣:

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

在Excel中:

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM