asp.net - таблица экспорта - PullRequest
       8

asp.net - таблица экспорта

0 голосов
/ 08 сентября 2011

У меня большая проблема с экспортом таблицы в формат файла Excel.

Сначала я создал код, который запускается на сервере и позволяет экспортировать данные в Excel. Из-за того, что моя таблица создается динамически из базы данных, на этом этапе ничего внутри таблицы нет, поэтому данные не экспортировались.

Мой второй подход был нацелен на окончательную скомпилированную таблицу на стороне клиента, используя либо javascript, либо очень хороший плагин jQuery под названием «DataTables» (www.datatables.net). Обе попытки не увенчались успехом. Javascript, кажется, сложен для меня, плюс он испытывает трудности с запуском в Firefox, плагин, с другой стороны, требует очень специфической структуры таблицы, которую, боюсь, я не могу предоставить.

Итак, моя новая идея: захватить страницу сразу после компиляции и сборки на сервере, но перед отправкой в ​​браузер. Настройте целевую таблицу и получите ее данные, используя функцию на сервере. Наконец экспортируйте данные в Excel и отправьте страницу в браузер. Сейчас. Является ли это возможным? И если да, то как?

Я новичок в мире программирования, поэтому любые конструктивные предложения и критика будут высоко оценены. Я не стал бы возражать против примеров жесткого кода;)

Ответы [ 4 ]

1 голос
/ 08 сентября 2011

Вы можете попробовать сделать что-то вроде этого:

protected void btnExport_Click(object sender, EventArgs e)
{       
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.Charset = "";

    System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

    //if you're exporting a table put the table in a placeholder and render 
    //the placeholder to the text writer here
    grdJobs.RenderControl(oHtmlTextWriter);

    Response.Write(oStringWriter.ToString());
    Response.End();
}
0 голосов
/ 15 сентября 2011

Если вы хотите экспортировать в настоящий XLS или XLSX вместо CSV или чего-то, что просто «открывается» в Excel, существуют сторонние инструменты, которые могут помочь вам в этом.Один пример здесь:

http://www.officewriter.com

0 голосов
/ 08 сентября 2011

Здесь вы получите множество предложений вместо ответов по этому вопросу.Я рекомендую попробовать плагин jQuery: table2csv , чтобы создать более универсальный формат файла.Но существуют способы нацеливания на фактический формат Excel, например этот проект.

0 голосов
/ 08 сентября 2011

Что вам нужно сделать, это экспортировать результаты вашего запроса в файл .CSV. CSV файлы могут быть открыты в Excel без проблем вообще. http://wiki.asp.net/page.aspx/401/export-to-csv-file/ Здесь показано, как экспортировать в формат .CSV.

...