Как создать таблицу 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, но вышеперечисленные функции меня поразили.