Как обновить данные в файле Excel с помощью C #?

#c# #.net #wpf #excel-interop

#c# #.net #wpf #excel-взаимодействие

Вопрос:

Этот вопрос может повторяться, но я пока не смог получить решение относительно моей проблемы. Я новичок в Interop. Я использую файл Excel (в качестве базы данных). Вот представление данных в файле Excel

введите описание изображения здесь

в моих данных, если идентификатор карты повторяется, мне нужно увеличить значение ‘1’ в счетчике в той же строке, аналогично мне нужно получить IP-адрес из той же строки..

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

Извините за плохой английский..

Спасибо

Комментарии:

1. Использование Excel в качестве базы данных усложняет задачу. Попробуйте использовать базу данных, mssql-express или ms-access, например.

2. Возможно, есть вариант преобразовать его в csv?

3. Вы правы.. но это требование клиента использовать Excel

4. Вероятно, было бы проще использовать реальное хранилище данных, как предложил Стефан, и сгенерировать отчет Excel для вашего клиента.

5. Есть лучшая альтернатива, чем использование interop для управления файлами Excel. Для вашего варианта использования я предлагаю сохранить ваши данные в базе данных mssql и создать отчет Excel. Но если вам абсолютно необходимо сделать это на c #, по крайней мере, используйте OpenXML api, а не interop.

Ответ №1:

Я рекомендую использовать закрытый XML

Вы записываете данные в файл напрямую и вам не нужен Excel. Для работы файла Excel потребуется последняя версия (стандарт open xml).

Комментарии:

1. Вы также можете использовать библиотеку Microsoft interop library, если у вас установлен office. Закрытый XML немного более многословен, но, как сказал Клейтон, вам не нужен установленный Excel для его использования. Я предпочитаю закрытый XML.

Ответ №2:

Epplus.dll или npoi.dll также будет считывать / записывать в файлы Excel без excel.

Ответ №3:

Сохраните данные в файле XML или JSON, затем, когда вы захотите их визуализировать, вы создадите файл Excel из этих данных, так что у вас будет очень легкий файл, который при желании легко прочитать и обновить.

Ответ №4:

Я не делал этого специально через wpf, но вы можете получить доступ к командлетам powershell через .в net и powershell есть команды для извлечения и записи данных Excel.

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

Во-первых, вы столкнетесь с ограничениями на чтение / запись, если оно используется чем-либо другим.

Ответ №5:

Если вы не возражаете против использования коммерческих библиотек, вы можете попробовать использовать Aspose.Ячейки. Он имеет богатый cells API и способен работать без Excel interop API.