2

我正在做一个项目,我需要使用 jquery 将 html 表导出到 excel 表。我有所需的插件,但我无法做的是在 excel 打开文件时设置列宽。

我已经尝试过设置<th style="width:70px;">table-layout:fixed; width:100%;为相关表设置。我也试过<DefaultColumnWidth>1</DefaultColumnWidth>WorkSheetOptions 没有成功。

我只需要所有列的宽度相同,并且行高根据单元格内容而变化。有什么办法可以做到这一点?我还可以使用其他将 html 表格转换为 excel 的插件,但它需要具有设置列宽和行高的选项。任何帮助是极大的赞赏。

这是我正在处理的示例表:

<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>
    <meta name=ProgId content=Excel.Sheet>
    <meta name=Generator content="Microsoft Excel 11">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>Hourly Summary Report</x:Name><x:WorksheetOptions><x:DefaultColumnWidth>16</x:DefaultColumnWidth><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
</head>
<body>
    <table style="table-layout:fixed; width:100%;"><thead>
    <tr>
        <th style="text-align:center; vertical-align:middle; word-wrap: break-word;">This sentence badly needs a word wrap</th>
        <th style="text-align:center; vertical-align:middle;">Industrial Robots</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td class="bg-black disabled color-palette" style="text-align:center; vertical-align:middle; font-weight:bold;">13 Jun 2017 12:00 AM - 13 Jun 2017 01:00 AM</td>
    </tr>
</tbody>
</table>
4

1 回答 1

2

事实证明,当在 html 中提供嵌套表时,excel 怪胎。因此,一旦我删除了表格标签,所有样式都开始正常使用 excel。为了方便其他将查看此答案的人,请注意删除<table>, </table>标签是必要且足够的。DOM 的其余部分在 excel 中运行良好。

于 2017-06-28T08:28:53.513 回答