我想从我的应用程序将表格数据复制到Excel。到目前为止我发现的最简单的方法是使用HTML作为中间格式。阅读this question后,我可以保留数据的格式。有没有办法保持列的宽度?我尝试以各种方式设置样式:
<td style="width:100;">...</td>
<td style="width:100px;">...</td>
<td style="width:100pt;">...</td>
但无济于事。有什么想法吗?
对于奖励积分,是否有可以找到Excel的HTML“格式”描述的地方?
[编辑]更新:我写了一个小工具来转储传输类型“XML样式表”。这是一个自包含的XML文档。它还包含列宽。但是快速测试显示Excel完全忽略了列宽,即使我在两个表之间剪切和粘贴:(因此,除非有人可以告诉我更改此行为的选项,我想在贴上时根本无法格式化列。
[EDIT2]我找到了办法。粘贴后,右下角会出现一个小图标,看起来像工具栏中的粘贴按钮。在这里,您可以选择一些选项。一个是“保持源表的宽度”。
答案 0 :(得分:4)
我建议使用XML电子表格格式(旧的2002/2003格式 - 生成更简单),而不是Excel导入HTML的能力。
我已经完成了两个并且编写了直接从.NET导出的库,而XML格式肯定不太可能让你失眠。
答案 1 :(得分: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>
答案 2 :(得分:2)
您可以从Excel再往返“回程”,那么为什么不在Excel中创建一个简单的工作簿并将其另存为HTML,然后检查结果呢?
编辑:删除了关于拦截“粘贴”事件的废话;我刚刚意识到你处于事物的“复制”方面,而不是“粘贴”方面。
答案 3 :(得分: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中打开,列宽正确设置。