2009-07-24 134 views
4

我想从我的应用程序中将表格数据复制到Excel。到目前为止,我发现的最简单的方法是使用HTML作为中间格式。在阅读this question后,我可以保留我的数据的格式。有没有办法保持列的宽度?我试图以各种方式设置风格:通过剪贴板将HTML表格导入到Excel中

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

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

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

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

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

回答

4

我推荐使用XML Spreadsheet格式(旧的2002/2003之一 - 更简单的生成)通过Excel导入HTML的能力。

我已经完成了两个和书面库直接从.NET导出,XML格式肯定不太可能让你失眠。

+0

你可以发布一个链接,说明这种格式的解释吗? – 2009-07-27 07:33:48

+1

http://msdn.microsoft.com/en-us/library/bb226687(office.11​​).aspx http://msdn.microsoft.com/en-us/library/bb226693(office.11​​).aspx – Edo 2009-07-27 07:59:45

2

可以‘往返’从Excel中为HTML和背部,为什么在Excel中没有创建一个简单的工作簿,并将其保存为HTML,然后检查结果?


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

+0

好主意。这真的帮助我弄清楚了几件事情,除了列宽。 – 2009-07-24 14:42:28

3

不要用“风格”,也不是“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> 
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中打开它的列宽设置正确。

相关问题