Я пытаюсь объединить 3 файла Excel вместе по строкам в столбце.C# Объединение файлов Excel
Я использую EPPlus
.NET библиотека, которая отлично работает, но она очень медленная.
Мне нужно проверить строку за строкой, чтобы найти соответствующее значение в других файлах Excels. Вот мой код:
for (int i = 3; i <= excelWorksheetVar.Dimension.End.Row; i++)
{
for (int j = 3; j <= excelWorksheetBefore.Dimension.End.Row; j++)
{
if (excelWorksheetVar.Cells[i, 3].Text == excelWorksheetBefore.Cells[j, 1].Text)
{
excelWorksheetBefore.Cells[j, 2, j, 4].Copy(excelWorksheetVar.Cells[i, 8, i, 10]);
excelWorksheetBefore.Cells[j, 6, j, 9].Copy(excelWorksheetVar.Cells[i, 11, i, 14]);
}
if (excelWorksheetVar.Cells[i, 3].Text == excelWorksheetAfter.Cells[j, 1].Text)
{
excelWorksheetAfter.Cells[j, 2, j, 4].Copy(excelWorksheetVar.Cells[i, 15, i, 17]);
excelWorksheetAfter.Cells[j, 6, j, 9].Copy(excelWorksheetVar.Cells[i, 18, i, 21]);
break;
}
}
}
Я выборка всех строк из колонки 3 в моем первом Excel файл excelWorksheetVar
и пытаюсь найти соответствующее значение в первом столбце второго Excel файл excelWorksheetBefore
и тот же с третьим файлом Excel excelWorksheetAfter
. Если значение найдено, оно записывает некоторые столбцы строки в первом файле Excel.
Что было бы самым быстрым способом, если бы файлы имели длину около 300 тыс. Строк? Я думаю о преобразовании в DataTable
или что-то подобное.
«Я думал о преобразовании в DataTable или нечто подобное.» Да, сделайте это. – Ben