OLE DB и OPEN XML SDK vs Excel.interop

Мне нужно прочитать файлы XLSX и извлечь из него максимальное количество контента. Какой из API я должен использовать?

OLE DB, открыть XML SDK или Excel Interop?

  • Что проще всего использовать?
  • Вы можете получить всю информацию, используя ту или иную? то есть дату, время, объединенных ячеек, таблиц, сводных данных и т.д.

Ответ 1

Вы можете попробовать все из них и выбрать тот, который вам больше всего подходит...

В зависимости от данных, которые вы хотите прочитать, я предлагаю вам использовать Open XML через Interop или Ole DB.
Я не знаю открытого XML SDK, хотя у меня есть опыт работы с библиотекой EPPlus, которую я использую много и могу сказать только хорошие слова об этом - это быстро, легко учиться, с хорошими примерами. Библиотека основана на формате Open Office XML, поэтому я предполагаю, что она почти такая же, как и SDK, о которой вы упомянули, и способна легко читать и записывать файлы Excel 2007 и 2010.
В связанном Интернете вы найдете самую библиотеку, документацию и некоторые примеры проектов Hello World для загрузки.

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

На втором месте - на всякий случай вам нужно извлечь табличные данные из рабочего листа - вы можете играть с OLE DB. Я боюсь, что вы не сможете извлечь какую-либо информацию о форматах, цветах и ​​т.д., А также данные должны быть в табличном организованном листе, поэтому вы можете рассматривать это как таблицу базы данных.

Последний - Interop, потому что:
- это COM-библиотека, поэтому вам нужно быть очень осторожным при игре с ней через .NET, так как легко вызвать некоторые уродливые и трудно найти утечки памяти (подтвержденный мной плохим опытом) - если вы не распоряжаетесь своими объектами правильно, он оставляет процесс Excel.exe открытым,
- это намного медленнее, чем предыдущие методы,
- в основном, он почти не имеет дополнительной добавленной стоимости для одного из предыдущих методов (EPPlus или OleDB) и требует, чтобы Excel был установлен на клиентской машине, поэтому зачем его использовать?

Удачи, тогда.