4

我想将表格数据从我的应用程序复制到 Excel。到目前为止,我发现的最简单的方法是使用 HTML 作为中间格式。阅读此问题后,我可以保留数据的格式。有没有办法保持列的宽度呢?我尝试以各种方式设置样式:

<td style="width:100;">...</td>
<td style="width:100px;">...</td>
<td style="width:100pt;">...</td>

但无济于事。有任何想法吗?

对于奖励积分,有没有地方可以找到 Excel 的 HTML“格式”的描述?

[编辑] 更新:我编写了一个小工具来转储传输类型“XML 样式表”。这是一个自包含的 XML 文档。它还包含列宽。但是快速测试表明,即使我在两个表之间剪切和粘贴,Excel 也会完全忽略列宽 :( 因此,除非有人可以告诉我更改此行为的选项,否则我想在粘贴时根本无法格式化列。

[EDIT2] 我找到了一种方法。粘贴后,您会在右下角看到一个小图标,看起来像工具栏中的粘贴按钮。在这里,您可以选择一些选项。一是“保持源表的宽度”。

4

4 回答 4

5

我推荐使用 XML 电子表格格式(旧的 2002/2003 格式——生成更简单),而不是 Excel 导入 HTML 的能力。

我已经完成了这两项工作,并编写了库以直接从 .NET 导出,而且 XML 格式绝对不太可能让你失眠。

于 2009-07-24T15:46:38.237 回答
3

不要使用“style”或“px”,例如:

<table border="1" cellpadding="5" cellspacing="0">
<tr>
    <td width="100">test</td>
    <td width="100">test</td>
    <td width="100">test</td>
    <td width="500">test</td>
</tr>
</table>
于 2011-07-27T21:28:15.040 回答
2

您可以“往返”从 Excel 到 HTML 并返回,那么为什么不在 Excel 中创建一个简单的工作簿并将其保存为 HTML,然后检查结果呢?


编辑:删除了关于拦截“粘贴”事件的废话;我刚刚意识到您处于事物的“复制”方面,而不是“粘贴”方面。

于 2009-07-24T12:44:11.983 回答
1

似乎是一个错误,使用剪贴板不会设置列宽。

解决方案(或解决方法)是在 Excel 中打开 HTML 文件。

这是一个复制品:

将其复制并粘贴到 Excel 中:

<html><body><center>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td width=64><strike>testing</strike></td>
<td width=64>one</td>
<td width=233>two</td>
<td width=64>three</td>
</tr>
</table></center></body></html>

不设置列宽!

将上面的 HTML 保存在一个文件中并在 Excel 中打开它,列宽设置正确。

于 2016-09-10T09:20:26.750 回答