我编写了一个C#方法,它将导出到Excel 2007,一个包含html表的html文件。在Excel中打开导出的文件时,数据会完美呈现。
我想在上面的导出中添加一个额外的功能,这样当我在Excel中打开导出的数据时,自动过滤器会自动打开。
在导出过程中,我可以在C#中做什么,为所有列启用自动过滤?
答案 0 :(得分:7)
如果要自动为通过以编程方式将html导出到.xls文件而创建的Excel文件中的标题行显示过滤器,请记住将以下2个功能添加到此文件中。
就是这样。然后你就完成了。它就这么简单。我从记事本中保存为“SampleInHTML.xls”并在Excel 2007和Excel 2010中进行测试的示例列表与在Excel中打开保存文件时自动显示的自动过滤完美配合,如下所示。
<html xmlns:v="urn:schemas-microsoft-com:vml"
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></head>
<body >
<table >
<tr >
<td width=130 x:autofilter='all'
>Age</td>
<td width=130 x:autofilter='all'
>Salary</td>
</tr>
<tr height=18 style='height:13.2pt'>
<td >34</td>
<td >2333</td>
</tr>
<tr >
<td>55</td>
<td>1222</td>
</tr>
</table>
</body>
</html>
答案 1 :(得分:0)
要做这些事情,您必须直接针对电子表格对象进行操作。据我所知,这不能通过导出HTML表来完成。
我使用过Gembox.Spreadsheet,它可以做你想要的。但是,它不是免费的。
答案 2 :(得分:0)
嗯,我只能使用以下几点来实现这一点:
xmlns:x="urn:schemas-microsoft-com:office:excel"
。th
的自动过滤属性 - x:autofilter='all'
以下是该示例的html。
<html xmlns:x="urn:schemas-microsoft-com:office:excel">
<head>
<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>Sheet1</x:Name><x:WorksheetOptions><x:Print><x:ValidPrinterInfo/></x:Print></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
<table>
<thead>
<tr>
<th x:autofilter='all'>Age</th>
<th x:autofilter='all'>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td>34</td>
<td>2333</td>
</tr>
</tbody>
</table>
</head>
</html>