Как объединить два файла Excel?

1Boda2012

Client
Регистрация
13.02.2019
Сообщения
11
Благодарностей
2
Баллы
3
Есть 1 файл Excel, к нему в конец таблицы нужно добавить другой файл Excel. Как это сделать?

Пробовал выгружать 1 таблицу в список (переносил все строки), затем из списка во 2 таблицу, но во 2 таблице неправильно считывает список и поэтому все не работает.

Также пробовал через C# таким кодом, но ничего не сработало

  1. string destTableName = "mainbase"; // имя таблицы, в которую добавлять данные
  2. string[] tableNames = { "parsed" }; // имена таблиц, из которых добавлять данные
  3. lock (SyncObjects.TableSyncer) {
  4. foreach (string tableName in tableNames) {
  5. IZennoTable table = project.Tables[tableName];
  6. for (int i = 0; i < table.RowCount; i++)
  7. project.Tables[destTableName].AddRow(table.GetRow(i));
  8. }
  9. }
 
  • Спасибо
Реакции: phoenixs и alya_6

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113

dtk77

Client
Регистрация
26.07.2017
Сообщения
24
Благодарностей
4
Баллы
3
Тоже интересует данный вопрос: Как объединить две таблицы? Ни один топик через поиск "таблицы объединить" не дает какого-либо ответа.

У меня аналогичная ситуация, как у автора топика. 1 - кубик операции с таблицами->взять строки->все ->поместить в список. / 2 - ...операции с таблицами->Добавить список в таблицу - заносит все значения в один указанный столбец. тупик.
Уважаемые гуру, поделитесь знаниями, как же решить (наверняка простую задачу) на столь замечательном инструменте


-------------------

видимо нашел ответ
 
Последнее редактирование:

Ikigai

Client
Регистрация
13.12.2016
Сообщения
275
Благодарностей
27
Баллы
28
знаю только как через кубики, но хотелось бы через сишарп решение.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 678
Благодарностей
1 861
Баллы
113
Если через C# код с использованием зенно методов работы с таблицами не получается, то можно использовать сторонние библиотеки, например: epplus.dll. там есть возможность добавить область (range) или построчно с перебором строк.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 678
Благодарностей
1 861
Баллы
113
1 - кубик операции с таблицами->взять строки->все ->поместить в список. / 2 - ...операции с таблицами->Добавить список в таблицу -
Зачем строки помещать в список? Можно же взятую строку помещать в другую таблицу. Если же используете список, то проверяйте какие используются разделители ячеек, иначе возможны ошибки. Например разделитель Tab, при переносе в список изменится на пробелы, и потом при обратном переносе возможны ошибки разделения ячеек.
 
  • Спасибо
Реакции: phoenixs

vanderic

Client
Регистрация
12.12.2019
Сообщения
3
Благодарностей
1
Баллы
3
Можно через C#. Склеит все таблицы с одинаковым расширением, в одну таблицу того же расширение. Конечная таблица, должна находится в отдельной папке.

string sourceDir = project.Variables["Path_Input"].Value;
string output = project.Variables["Path_Result"].Value;

File.WriteAllLines(output, Directory.EnumerateFiles(sourceDir, @"*.csv")
.Where(path => !path.Equals(output, StringComparison.OrdinalIgnoreCase))
.SelectMany(File.ReadLines));

IEnumerable<string> contents = Directory.EnumerateFiles(sourceDir, @"*.csv")
.SelectMany(File.ReadLines).ToList();

File.WriteAllLines(output, contents);
 
  • Спасибо
Реакции: Nick

baracuda

Client
Регистрация
19.06.2013
Сообщения
734
Благодарностей
248
Баллы
43
как вариант
если формат .csv и данные одного типа в одной папке то простой вариант

copy *.txt RESULT.txt
 
  • Спасибо
Реакции: Nick и gelu4

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)