Создание таблицы Excel из CSV (ASP.NET C #)

Возможный дубликат:
Создайте файл Excel (.XLS и .XLSX) с C #

У меня есть код, который генерирует zip-файл, содержащий несколько файлов CSV, и передает его обратно пользователю (на сервере не сохраняется файл). Тем не менее, я хочу вместо этого создать книгу Excel (может быть традиционным xls или форматом Office Open XML xlsx), причем каждый файл CSV является электронной таблицей.

Как я могу это сделать, не прибегая к Office Automation на сервере или коммерческому стороннему компоненту?

Вы можете использовать OleDB для создания простых таблиц в файлах Excel.

Обратите внимание, что вам необходимо создать временный файл на сервере.

Пример .

Обратите внимание, что их пример неверен и ему необходимо использовать OleDbConnectionStringBuilder , например:

 OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(); if (isOpenXML) builder.Provider = "Microsoft.ACE.OLEDB.12.0"; else builder.Provider = "Microsoft.Jet.OLEDB.4.0"; builder.DataSource = fileName; builder["Extended Properties"] = "Extended Properties=\"Excel 8.0;HDR=YES;\"" using (var con = new OleDbConnection(builder.ToString())) { ... } 

Формат XML для Excel довольно прост, и нет никакой необходимости в автоматизации. Полная ссылка на MSDN: http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx

  Response.ContentType = "application/vnd.ms-excel"; 

Свойство ContentType указывает тип содержимого HTTP для ответа. Если ContentType не указан, по умолчанию используется текст / HTML.

Получите все свои данные в DataGrid а затем получите его от него, это можно сделать с помощью:

 DataGrid.RenderControl 

Выводит серверный контент управления на предоставленный объект HtmlTextWriter и сохраняет информацию о трассировке HtmlTextWriter управления, если трассировка включена.

  SqlConnection cn = new SqlConnection("yourconnectionstring"); cn.Open(); SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Users", cn); DataTable dt = new DataTable(); da.Fill(dt); DataGrid dg = new DataGrid(); dg.DataSource = dt; dg.DataBind(); System.IO.StringWriter tw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); dg.RenderControl(hw); cn.Close(); Response.Clear(); Response.ContentType = "application/vnd.ms-excel"; this.EnableViewState = false; Response.Write(tw.ToString()); Response.End(); 

Вы можете написать excel xml самостоятельно. Вот хорошая библиотека для задачи, может быть, это что-то для вас.

// Редактировать ссылку: http://www.carlosag.net/Tools/ExcelXmlWriter/Generator.aspx

  • генерируемая строка с разделителями-запятыми на основе таблицы excel
  • Экспорт всего файла Excel в формате CSV
  • Загрузите изображения из каталога CSV / XLS
  • импортировать данные из файла excel в таблицу mysql, используя php
  • VBA: сохранение значений перекрестных формул Excel в csv
  • экспорт результата запроса sql в csv или excel
  • Java - escape-строки в CSV для Excel
  • .NET Как открыть CSV с Excel Interop без преобразования текста в формулы
  • Получить данные из excel "csv format", аналогичные linq, пропустить
  • Разверните таблицу с разделителями-запятыми в нескольких строках
  • формат даты Excel
  • Interesting Posts

    Как заставить sql-запросы работать быстрее в excel?

    Укажите, какие листы рабочей книги не сохраняться при сохранении книги в одном файле PDF

    Excel VBA или функция для извлечения имени и данных рабочей книги из рабочей книги

    Справочный внешний файл с именем ^

    Создать новый рабочий лист на основе ячейки, но игнорировать пустую ячейку

    Списки перекрестных ссылок в excel / access

    Как я могу получить «tr id» из HTML-кода?

    Заполнение пустой ячейки предыдущим известным значением в столбце

    Преобразование одной колонки в 7 строк в excel

    Не удается прочитать файл excel после его создания с помощью функции File.WriteAllText ()

    .NET DLL в VBA (Excel)

    Как установить локаль формата данных (число) для конкретной ячейки с помощью Apache POI (SXSSF)?

    Программно получая последнюю заполненную строку excel, используя C #

    Могу ли я использовать Offset и Match, чтобы найти значение MIN в нескольких результатах?

    Установите ссылку на ячейку во время выполнения для флажка «Формы»

    Давайте будем гением компьютера.