Библиотека .NET Excel, которая может читать / записывать xls-файлы [закрыто]

StackOverflow https://stackoverflow.com/questions/5852678

  •  27-10-2019
  •  | 
  •  

Вопрос

Я ищу библиотеку Excel, которая читает / записывает файлы .xls (не .xlsx).

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

Я видел в другой теме, как кто-то предложил ЭППлус, но это работает только с форматом 2007/2010 .xlsx.

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

Если вы знаете о библиотеке, пожалуйста, дайте мне знать, как она называется.

Редактировать:Я очень рад создать свой файл Excel с помощью встроенной программы Microsoft.Офис.Взаимодействие.При необходимости используйте Excel, однако на моем компьютере установлен Office 2007, а на целевых компьютерах - только Office 2003.Я заметил, что у меня есть 2 версии файлов для этой библиотеки:12, и 14.Я проверил версию Excel на целевых компьютерах, и это 11.8169.8172 - я предполагаю, что встроенное взаимодействие с Excel не будет работать на цели?

Это было полезно?

Решение

Я бы порекомендовал NPOI.NPOI - это Бесплатно и работает исключительно с файлами .XLS.Это мне очень помогло.

Деталь:вам не нужно устанавливать Microsoft Office на вашем компьютере для работы с файлами .XLS, если вы используете NPOI.

Проверьте эти записи в блоге:

Создание электронных таблиц Excel .XLS и .XLSX на C#

NPOI с таблицей Excel и динамической диаграммой

[ОБНОВЛЕНИЕ]

NPOI 2.0 добавил поддержку XLSX и DOCX.

Подробнее об этом вы можете прочитать здесь:

Запланирована серия сообщений NPOI 2.0

Другие советы

Есть ли причина, по которой вы не можете использовать подключение Excel ODBC для чтения и записи для Excel? Например, я использовал следующий код для чтения из строки файлов Excel по строке, как база данных:

private DataTable LoadExcelData(string fileName)
{
  string Connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";

  OleDbConnection con = new OleDbConnection(Connection);

  OleDbCommand command = new OleDbCommand();

  DataTable dt = new DataTable(); OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Sheet1$] WHERE LastName <> '' ORDER BY LastName, FirstName", con);

  myCommand.Fill(dt);

  Console.WriteLine(dt.Rows.Count);

  return dt;
}

Вы можете написать в базу данных Excel «так же. Как вы можете видеть, вы можете выбрать номер версии для использования, чтобы вы могли понизить версии Excel для машины с Excel 2003. На самом деле то же самое относится и к использованию Interop. Вы можете использовать более низкую версию, и она должна работать с Excel 2003, даже если у вас есть только более высокая версия на вашем ПК.

Вы можете рассмотреть сторонний инструмент, который назывался Excel Jetcell .net Component Для чтения/записи файлов Excel:

C# образец

// Create New Excel Workbook
ExcelWorkbook Wbook = new ExcelWorkbook();
ExcelCellCollection Cells = Wbook.Worksheets.Add("Sheet1").Cells;

Cells["A1"].Value = "Excel writer example (C#)";
Cells["A1"].Style.Font.Bold = true;
Cells["B1"].Value = "=550 + 5";

// Write Excel XLS file
Wbook.WriteXLS("excel_net.xls");

Образец VB.NET

' Create New Excel Workbook
Dim Wbook As ExcelWorkbook = New ExcelWorkbook()
Dim Cells As ExcelCellCollection = Wbook.Worksheets.Add("Sheet1").Cells

Cells("A1").Value = "Excel writer example (C#)"
Cells("A1").Style.Font.Bold = True
Cells("B1").Value = "=550 + 5"

' Write Excel XLS file
Wbook.WriteXLS("excel_net.xls")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top