Включение автофильтра Excel в файле экспорта в Excel с помощью - PullRequest
1 голос
/ 07 апреля 2011

Я написал метод C #, который будет экспортировать в Excel 2007, HTML-файл, который содержит HTML-таблицу.Данные отлично отображаются при открытии экспортированного файла в Excel.

Я хотел бы добавить дополнительную функцию в вышеупомянутый экспорт, чтобы при открытии экспортированных данных в Excel автофильтр включался автоматически.

Что я могу сделать в C # во время экспорта, чтобы включить автофильтр для всех столбцов?

Ответы [ 3 ]

7 голосов
/ 07 апреля 2011

Если вы хотите, чтобы фильтры автоматически отображались для строки заголовка в файле Excel, который создается путем программного экспорта html в файл .xls, не забудьте добавить следующие 2 функции в этот файл.

  • Добавьте схемы для Excel в тег html, как выделено жирным шрифтом в листинге ниже. Добавьте именно эти схемы.
  • Добавьте к каждому столбцу заголовка тег td следующий атрибут x: autofilter = 'all', который также выделен жирным шрифтом в приведенном ниже списке.

Вот и все. Тогда вы сделали. Это так просто. Пример листинга, который я сохранил как «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>
0 голосов
/ 03 июня 2016

Что ж, я смог добиться этого, используя следующие пункты:

  1. пространство имен xmlns:x="urn:schemas-microsoft-com:office:excel".
  2. Атрибут автофильтра для 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>
0 голосов
/ 07 апреля 2011

Чтобы делать подобные вещи, вы должны работать непосредственно с объектом электронной таблицы. Насколько я знаю, это невозможно сделать путем экспорта таблицы HTML.

Я использовал Gembox.Spreadsheet, и он сможет делать то, что вы хотите. Тем не менее, это не бесплатно.

...