.NET 4.x Excel, Range и С# - Добавление массива в диапазон ячеек - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Нужна помощь: Пишу простой парсер, который из файлов .xlsx собирает нужную информацию в List. После List преобразовывается в массив и его нужно вставить диапазон ячеек другого excel файла. Вот код:
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();
        }
    }
}
В итоге вместо уникальных значений ячеек, в каждой ячейки таблицы первое значение из массива. Прошу помощи, поскольку десктоп не профиль и с c# знаком на уровне "походу читая док учу язык". Относительный тщательный поиск на просторах интернета не помог ни разу, стало не понятней - почти все Range получают ф-ей get_range(from,to), у меня онная не работает. Грешу на разницу в версих .NET. Сижу на Win 10, в ней, судя по вики, используется версия 4.6.

Решение задачи: «.NET 4.x Excel, Range и С# - Добавление массива в диапазон ячеек»

textual
Листинг программы
 
myRange.Value = finalNumber;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы