2016-02-21 1 views
1

Я ищу способ C# для удаления (пустой) строк Excel в листе без использования пространства имен Microsoft.Office.Interop.Excel.C# - удалить Excel-строку wihout с использованием пространства имен Interop

Было найдено множество примеров с пространством имен Interop, например, C# and excel deleting rows. Но есть ли способ сделать это без сторонних инструментов - только с .NET?

Благодарим за помощь!

+0

Неясно, имеете ли вы в виду, что хотите сделать это, не используя приложение Excel, или, если хотите, просто хотите управлять книгой в Excel, но без ссылки на библиотеки PIAs/COM. Обе возможности возможны - без использования сторонних инструментов, но подходы очень разные –

+0

В моем случае лучшее решение будет без каких-либо сторонних инструментов и ссылок. Только NET. Добавлено на вопрос! – Fruchtzwerg

+0

Вы все еще не ответили на мой вопрос: должно ли ваше решение работать с приложением Excel («interop») или нет? Спрошено по-другому: будет ли это в серверной среде? Вы можете рассчитывать на присутствие приложения Excel? –

ответ

0

Это сообщение stackoverflow может помочь - в нем обсуждаются некоторые библиотеки, которые могут работать с excel без необходимости установки Office. Вопрос касается VB.NET, но я считаю, что обсуждаемые варианты будут работать с C# тоже ...

How to process excel file in vb.net without office installed

1

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

Оба эти подхода подходят для работы в серверной среде (в отличие от тех, которые требуют наличия приложения Excel) и не требуют каких-либо лицензий.

  1. Вы можете использовать соединение OLE DB (поставщик ACE OLE DB) для связи с содержимым книги Excel. Он позволяет подключаться к отдельным рабочим листам, а также к именованным диапазонам. Поддерживается базовая функциональность SQL.
  2. Формат файла Excel 2007 и более поздних версий - это Office Open XML (OOXML). Эти файлы представляют собой «zip-пакеты», содержащие файлы (по большей части xml), составляющие книгу. Таким образом, любые стандартные инструменты, которые могут работать с Zip-пакетами и XML, могут использоваться для открытия книги Excel, редактирования содержимого, а затем закрытия рабочей книги. В .NET Framework это будет System.IO.Packaging (в WindowsBase.dll, как правило, нужно ссылаться конкретно) и пространства имен System.XML.

    Документация для форматов файлов - стандарт ECMA-376 (http://www.ecma-international.org/publications/standards/Ecma-376.htm). Полезным он-лайн ресурсом является openxmldeveloper.org.

    Обратите внимание, что Microsoft также предоставляет Open XML SDK, бесплатную загрузку, которая может быть распространена без лицензии с вашим решением. Open XML SDK уменьшает «кривую обучения», поскольку это уменьшает объем знаний, необходимых вам для форматов файлов OOXML. Я упомянул об этом ради полноты, потому что знаю, как сложно пытаться работать непосредственно с файловым форматом. Кроме того, поскольку DLL свободно распространяется и может быть скопирована как часть вашего решения, она может соответствовать вашим требованиям.