Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА:

Как создать файл Excel (.XLS и .XLSX) в C # без установки MS Office? 4 года 8 мес. назад #203

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
Как создать таблицу Excel с помощью С#, не требуя установки Excel на компьютере с кодом?

Вы можете использовать библиотеку под названием ExcelLibrary. Это бесплатная библиотека с открытым исходным кодом, размещенная в Google Code:

ExcelLibrary - доступно из репозитория NuGet Gallery

Это выглядит как порт PHP ExcelWriter. Он пока не будет писать в новый формат .xlsx, но они работают над добавлением этой функциональности.

Это очень просто, маленький и простой в использовании инструмент. Кроме того, он имеет DataSetHelper, который позволяет вам использовать DataSets и DataTables для простой работы с данными Excel.

Кажется, что ExcelLibrary все еще работает только для старого формата Excel (файлы .xls), но в будущем может добавить поддержку для новых форматов 2007/2010.

Вы также можете использовать EPPlus , который работает только для файлов формата Excel 2007/2010 (файлы .xlsx). Там также NPOI , который работает с обоими.

Есть несколько известных ошибок с каждой библиотекой, как отмечено в комментариях. В целом, EPPlus кажется лучшим выбором с течением времени. Кажется, что он также более активно обновляется и документируется.

Кроме того, EPPlus имеет поддержку сводных таблиц, а ExcelLibrary может иметь некоторую поддержку ( проблема сводных таблиц в ExcelLibrary )

Вот несколько ссылок для быстрого ознакомления:
ExcelLibrary - GNU Lesser GPL
EPPlus - GNU Lesser General Public License (LGPL)
НКОИ - Лицензия Apache

Вот пример кода для ExcelLibrary:

Вот пример получения данных из базы данных и создания из нее рабочей книги. Обратите внимание, что код ExcelLibrary - это одна строка внизу:
//Create the data set and table
DataSet ds = new DataSet("New_DataSet");
DataTable dt = new DataTable("New_DataTable");

//Set the locale for each
ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;

//Open a DB connection (in this example with OleDB)
OleDbConnection con = new OleDbConnection(dbConnectionString);
con.Open();

//Create a query and fill the data table with the data from the DB
string sql = "SELECT Whatever FROM MyDBTable;";
OleDbCommand cmd = new OleDbCommand(sql, con);
OleDbDataAdapter adptr = new OleDbDataAdapter();

adptr.SelectCommand = cmd;
adptr.Fill(dt);
con.Close();

//Add the table to the data set
ds.Tables.Add(dt);

//Here the easy part. Create the Excel worksheet from the data set
ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", ds);

Создать файл Excel так просто. Вы также можете вручную создавать файлы Excel, но вышеперечисленные функции меня поразили.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Как создать файл Excel (.XLS и .XLSX) в C # без установки MS Office? 4 года 8 мес. назад #204

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
ExcelLibrary был заменен исключительным EPPlus - epplus.codeplex.com . Ян регулярно обновляет его. Я использовал его, и это один из лучших проектов с открытым исходным кодом, с которыми мы работали.

Следует отметить, что ExcelLibrary имеет много проблем с производительностью при работе с большими наборами данных (более 5000 строк с большим количеством столбцов). В настоящее время ведется серьезная модификация базы кода на работе, чтобы мы могли использовать ее в проекте.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Модераторы: Дмитрий

О сайте

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


Контакты

08340. ул.Салютная 17. с.Гнедын.
Киевская обл. Украина.

+38 067 492 4124.
+38 095 065 8860.

info@okwood.com.ua
www.okwood.com.ua

Местоположения


8PM2+7R Гнедин, Kyiv Oblast