.NET 4.x Excel, Range и С# - Добавление массива в диапазон ячеек - C#
Формулировка задачи:
Добрый день. Нужна помощь:
Пишу простой парсер, который из файлов .xlsx собирает нужную информацию в List. После List преобразовывается в массив и его нужно вставить диапазон ячеек другого excel файла.
Вот код:
В итоге вместо уникальных значений ячеек, в каждой ячейки таблицы первое значение из массива.
Прошу помощи, поскольку десктоп не профиль и с c# знаком на уровне "походу читая док учу язык".
Относительный тщательный поиск на просторах интернета не помог ни разу, стало не понятней - почти все Range получают ф-ей get_range(from,to), у меня онная не работает. Грешу на разницу в версих .NET. Сижу на Win 10, в ней, судя по вики, используется версия 4.6.
using System;
using System.IO;
using System.Data;
using System.Collections.Generic;
using Excel;
using EXCEL = Microsoft.Office.Interop.Excel;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int writePos = 1;
string key = "Контактный телефон:";
string path = "C:\\Users\\USERNAME\\Desktop\\FOLDER";
List<string> numbers = new List<string>() { "1", "2", "3", "4", "5" }; /* Тестовый Лист, дабы не проходить по 3к+ файлам excel */
DirectoryInfo dir = new DirectoryInfo(path);
FileInfo[] files = dir.GetFiles("*.*", SearchOption.AllDirectories);
EXCEL.Application ObjExcel = new EXCEL.Application();
EXCEL.Workbook ObjWorkBook;
EXCEL.Worksheet ObjWorkSheet;
//Книга.
ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
//Таблица.
ObjWorkSheet = (EXCEL.Worksheet)ObjWorkBook.Worksheets.get_Item(1);
object misValue = System.Reflection.Missing.Value;
string[] finalNumber = numbers.ToArray();
EXCEL.Range myRange = (EXCEL.Range) ObjWorkSheet.Range["A1", "A"+finalNumber.Length.ToString()];
myRange.Value = finalNumber; /* По всему диапазону ячеек после создания файлов будет лишь первое значение массива */
Console.WriteLine("Завершено.");
ObjWorkBook.SaveAs("C:\\Users\\USERNAME\\Desktop\\Base.xlsx");
Console.ReadKey();
ObjWorkBook.Close(true, misValue, misValue);
ObjExcel.Quit();
}
}
}Решение задачи: «.NET 4.x Excel, Range и С# - Добавление массива в диапазон ячеек»
textual
Листинг программы
myRange.Value = finalNumber;