abdul subhan mohammed Ответов: 1

Как экспортировать данные html таблицы в формат xlsx


Привет ребята,

У меня есть asp.net веб-сайт...

Где я экспортирую html-данные в excel(код Jquery), но в формате xls.

Код Jquery
<script type="text/javascript">
     var tableToExcel = (function () {
         var uri = 'data:application/vnd.ms-excel;base64,'
             , template = '<html 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><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
             , base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
             , format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }
         return function (table, name) {
             if (!table.nodeType) table = document.getElementById(table)
             var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML }
             window.location.href = uri + base64(format(template, ctx))

         }
     })()
 </script>


Приведенный выше код плавно работает для формата xls, Но я ищу формат xlsx...

Может ли кто-нибудь мне помочь?


Спасибо

1 Ответов

Рейтинг:
0

Sergey Alexandrovich Kryukov

Прежде всего, попробуйте экспортировать не HTML, а данные, используемые для создания HTML. Вы используете ASP.NET, это означает, что у вас есть данные и вы используете их для заполнения таблицы, поэтому лучше использовать эти данные.

Для написания xlsx я бы рекомендовал использовать Microsoft Open XML SDK. Например, смотрите эту статью CodeProject:
Создание базовой книги Excel с открытым XML[^].

Обратите внимание: Microsoft объясняет, почему использование Excel interop в настройках сервера не рекомендуется:
http://support.microsoft.com/default.aspx?scid=kb; EN-US; q257757#kb2[^],
http://support.microsoft.com/kb/257757/en-us[^].

См. также мои прошлые ответы, упомянутые в этом: Как добавить библиотеку объектов microsoft excel 15.0 из Add Reference в MS Visual Studio 2010[^].

—СА