Vla*_*nko 2 html excel formatting cell
这是我的情况:我有简单的Excel OOXML文件,其Web Query连接到我的服务器.具有日期的所有单元格具有"常规"水平对齐(无对齐)和MM/DD/YYYY格式.它看起来像这样:

使用相当简单的HTML刷新服务器响应:
<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>
<style id="Leads_style">
table
{
mso-displayed-decimal-separator:"\.";
mso-displayed-thousand-separator:"\,";
}
.cs0 { mso-number-format:\@; }
.cs1 { mso-number-format:mm\/dd\/yyyy; }
</style>
</head>
<body>
<table id="tbl_0_Leads" x:publishsource="Excel">
<tr>
<td>Title:</td>
<td colspan="2" style="white-space:nowrap">Leads</td>
</tr>
<tr>
<td>Date:</td>
<td align="left" colspan="2">27 Aug 2014 08:02 AM +0:00 GMT</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<table id="tbl_3_Leads" x:publishsource="Excel">
<tr>
<td>Display Name</td>
<td>Created Date</td>
<td>Last Modified Date</td>
</tr>
<tr>
<td class="cs0" x:str="Darrow Mag, Mrs.">Darrow Mag, Mrs.</td>
<td class="cs1">04/23/2009</td>
<td class="cs1">08/06/2014</td>
</tr>
<tr>
<td class="cs0" x:str="q q, Prof.">q q, Prof.</td>
<td class="cs1">06/04/2014</td>
<td class="cs1">08/06/2014</td>
</tr>
<tr>
<td class="cs0" x:str="dasd dsa, Dr.">dasd dsa, Dr.</td>
<td class="cs1">06/16/2014</td>
<td class="cs1">08/06/2014</td>
</tr>
<tr>
<td class="cs0" x:str="Bouat Jerome, Dr.">Bouat Jerome, Dr.</td>
<td class="cs1">08/12/2014</td>
<td class="cs1">08/12/2014</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
请注意,样式部分中的.cs1类具有mso-number-format:mm\/dd\/yyyy,因此Excel文档中的所有日期应如下所示08/27/2014.
由于未知原因,Excel将错误的格式(MM.DD.YYYY)应用于日期单元格:

看似正常的两个单元格也有MM.DD.YYYY格式,但Excel将它们显示为MM/DD/YYYY左对齐,因为DD值远远大于MM值的最大值(是的,这也很奇怪).
请帮忙.我究竟做错了什么?
好的,我终于找到了解决方案.
由于未知原因,从HTML检索刷新数据时,Excel无法理解正确的ISO 8601格式.所有日期时间都应以yyyy-MM-dd/ yyyy-MM-dd HH:mm:ss/ HH:mm:ss格式传递,并mso-number-format在styles节mso-number-format:"mm\\/dd\\/yyyy"中定义正确的参数(在我的例子中).