serbanov Ответов: 4

C# - сравнение двух файлов excel


Всем привет,


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

Я искал форумы google/sw Developers и не нашел ничего, что можно было бы использовать для сравнения 2 листов.

В настоящее время я пытаюсь сделать это сравнение в приложении WinForm, и я застрял в этой части. Я даже не знаю, как я должен подойти к этому ..

Есть предложения ?? Пример кода ?? Я был бы вам очень благодарен !

Что я уже пробовал:

Все, что я видел в интернете, но совершенно не относится к моему коду.

4 Ответов

Рейтинг:
28

manu_dhobale

Сначала разберись со своими листами Excel в объект DataTable, как это Как преобразовать Excel в DataTable на языке C#[^]

Затем сравните ваши данные следующим образом Как сравнить две таблицы данных и создать новую таблицу данных на основе сравниваемых результатов (c#) | The ASP.NET форумы[^]


serbanov

Ну, у меня есть excel с более чем 4k строками ... и я не знаю, правильный ли это подход, но я попробую.

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

https://s21.postimg.org/sqzwdaiif/excel_D.jpg - - - > Как выглядит мой excel.

Рейтинг:
24

Patrice T

Когда вы гуглите "excel compare sheets", вы получаете только 15 миллионов ответов, и вы не нашли ничего полезного ? Серьезно ?

Цитата:
Я с нетерпением жду возможности сравнить два файла excel и поместить разницу в другой лист.
Сначала вам нужно определить, что вы хотите сравнить, значения ячеек, формулы, форматирование ...
Цитата:
Главная проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, с чего начать.
Ты что, шутишь ? Есть почти один способ сделать это.
Вы хотите сказать своему пользователю, в чем заключаются различия.
Для каждой ячейки 2-х первых листов вы хотите написать на третьем листе, равны ли ячейки или нет.
Более или менее, у вас будет:
' not real code
Sheet3.A1=(Sheet1.A1=Sheet2.A1)

детали варьируются в зависимости от того, как вы хотите показать различия и какие различия вы ищете.
Цитата:
Я искал форумы google/sw Developers и не нашел ничего, что можно было бы использовать для сравнения 2 листов.
Иногда приходится работать, чтобы свести концы с концами.
Когда вы нашли решение на каком-то языке, ваша задача состоит в том, чтобы переводить на ваш язык и адаптироваться к вашим критериям.
Цитата:
Все, что я видел в интернете, но совершенно не относится к моему коду.
Программист-это не просто работа по копированию/вставке, иногда вам приходится что-то создавать.


Рейтинг:
2

#realJSOP

Я делаю что-то почти точно такое же (приложение WPF). Я беру две электронные таблицы и объединяю их на основе заданных пользователем критериев сопоставления (с одной или несколькими совпадающими парами столбцов.

Я использую форму в стиле мастера, чтобы направлять пользователя через этот процесс. Мои волшебные страницы:

- Вступление
- Выбор типа слияния (два файла или два листа в одном файле)
- Выбор файла (и рабочего листа)
- Выбор столбца
- Критерии соответствия
- Генерация новых (объединенных) файлов/предварительный просмотр/сохранение


Philippe Mori

На самом деле вы не объясняете, что делать и с чего начать....

Рейтинг:
0

Richard MacCutchan

Вы можете читать свои файлы Excel с помощью Microsoft.Офис.Взаимодействие.Пространство имен Excel ()[^], который предоставляет все необходимые классы и методы.


serbanov

Я должен сравнить два файла Excel, и они превышают 4K строк ... и они написаны в виде древовидного представления. Не знаю, насколько это мне поможет.

Richard MacCutchan

Не имеет значения, используете ли вы Interop или предложение manu_dhobale, проблема точно такая же. В какой бы форме ни хранились ваши данные, вам придется прочитать каждый элемент из обоих файлов, чтобы провести сравнение.