Есть ли какая-нибудь простая в использовании библиотека, которая может использоваться для чтения файлов excel и может быть создана позже? это мой лучший выбор?Чтение и запись файлов Excel C#
http://support.microsoft.com/kb/302084
Есть ли какая-нибудь простая в использовании библиотека, которая может использоваться для чтения файлов excel и может быть создана позже? это мой лучший выбор?Чтение и запись файлов Excel C#
http://support.microsoft.com/kb/302084
Если вы хотите посвятить себя более поздней версии Excel (2007+), вы также можете взглянуть на OpenXML SDK. Это бесплатно, не связывает вас с тем, что MS Office установлен на компьютере, на котором он будет работать, и существует немало ресурсов available о том, как использовать его в Интернете (including blogs from the OpenXML team).
Компания я работал на сделал много исследований по этому и решил продукт, SoftArtisans был их лучшим выбором: OfficeWriter
Я всегда находил это странным, как слабая поддержка Excel чтение и письмо было. Я уверен, что если вы используете библиотеки Microsoft, вы должны все равно установить Excel, что является дополнительным расходом, как и OfficeWriter.
Вы можете либо пойти на VBA, либо использовать бесплатную библиотеку от FileHelpers. Если вы планируете купить некоторые Commerical решения, я бы рекомендовал ASPOSE
Существует пакет первенствует плюс:
работает только на XLSX, хотя, но Office 2003 является езда на велосипеде в любом случае.
Согласно this website, вам необходимо включить ссылку на библиотеку объектов Microsoft Excel 12.0. Оттуда вам нужно сделать несколько вещей, чтобы открыть файл. На веб-сайте есть образец кода.
PS - Извините, это не слишком подробно, но я не смог найти ссылку на разработчиков Microsoft Office с более подробной информацией.
Я использовал ExcelLibrary с отличными результатами! (до сих пор он поддерживает Excel 2003 или более низкие версии).
В библиотеке Excel есть ошибка, нельзя открывать файлы, сгенерированные с ней в Excel 2010 (по крайней мере, если <100 столбцов и строк). –
Действительно? На самом деле я управлял файлом с максимальным количеством 70-80 строк, и эта проблема никогда не возникает! Спасибо, что сообщили мне об этом! –
Исправление: магическое число равно 50, но, похоже, оно в некоторой степени произвольно в целом, я считаю, что правильное определение заключается в том, что сгенерированный поток файлов короче 4096 байт. И только в Excel 2010 во всех остальных версиях он работает нормально. –
Попробуйте это: http://epplus.codeplex.com
EPPlus библиотека .net, который считывает и записывает Excel 2007/2010 файлы с использованием формата Open Office XML (XLSX).
Вы можете использовать ExcelLibrary, хотя она работает только .xls, который составляет 2003 Формат
Целью данного проекта является обеспечить родное решение .NET для создания, чтения и редактирования файлов Excel без использования COM или OLEDB.
У меня был шанс использовать EPPLUS, это было замечательно :), оно работает для нового формата первенствовать .xlsx, который используется в 2007/2010
EPPlus библиотека .net, вы можете читать и писать в excel-файлы, создавать диаграммы, рисунки, фигуры ...и многое другое
Также посмотрите на эту SO post
я использовал OLEDB, Interop и только начал использовать Epplus. Пока что epplus оказывается самым простым. http://epplus.codeplex.com/
Однако, я только что опубликовал проблему с epplus, но я разместил код, который вы могли бы использовать в качестве ссылки.
Мне нравится использовать ExcelDataReader для чтения и вышеупомянутый EPPlus для записи. Here's an example.
Вот пример чтения с ним:
FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
// Reading from a binary Excel file ('97-2003 format; *.xls)
// IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
// Reading from a OpenXml Excel file (2007 format; *.xlsx)
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
// DataSet - The result of each spreadsheet will be created in the result.Tables
DataSet result = excelReader.AsDataSet();
// Free resources (IExcelDataReader is IDisposable)
excelReader.Close();
var cdm = new ValueSetRepository();
for (int i = 0; i < result.Tables.Count; i++)
{
// CHECK if tableNames filtering is specified
if (tableNames != null)
{
// CHECK if a table matches the specified tablenames
var tablename = result.Tables[i].TableName;
if (!tableNames.Contains(tablename))
{
continue;
}
}
var lookup = new ValueSetLookup();
lookup.CmsId = result.Tables[i].Rows[2][0].ToString();
lookup.NqfNumber = result.Tables[i].Rows[2][1].ToString();
lookup.Data = new List<ValueSetAttribute>();
int row_no = 2;
while (row_no < result.Tables[i].Rows.Count) // i is the index of table
// (sheet name) which you want to convert to csv
{
var currRow = result.Tables[i].Rows[row_no];
var valueSetAttribute = new ValueSetAttribute()
{
Id = currRow[0].ToString(),
Number = currRow[1].ToString(),
tName = currRow[2].ToString(),
Code = currRow[7].ToString(),
Description = currRow[8].ToString(),
};
lookup.Data.Add(valueSetAttribute);
row_no++;
}
cdm.AddRecord(lookup);
возможно дубликат [файла Создание Excel (.xls и .xlsx) из C#] (http://stackoverflow.com/questions/151005/create- excel-xls-and-xlsx-file-from-c) –
Да, если вы хотите иметь полную возможность читать и редактировать файл Excel, возможно, лучше всего подходит интерфейс автоматизации. В зависимости от того, что вы хотите сделать, иногда может использоваться простой CSV-файл. Excel будет сосать их легко. Но это будет использоваться для создания файла Excel. , , проблема, о которой вы говорили, заключалась в том, чтобы прочитать файл Excel. , , интерфейс автоматизации. , , сложный, чтобы учиться и использовать (в своей полноте), но вы можете делать ВСЕ на листе, который вы можете сделать вручную. – Frank
Создаете ли вы WinForm для этого или какой-либо другой тип приложения? – NDraskovic