невозможно скопировать значения столбца Excel в указанный диапазон в другом файле Excel - PullRequest
0 голосов
/ 03 октября 2018

Я написал небольшой код для копирования нескольких столбцов из исходного файла Excel в другой файл Excel (целевой файл Excel) с помощью c #.Ниже приведен пример изображения исходного файла Excel.

enter image description here

Ожидаемый результат в файле Excel назначения должен быть таким, как показано на изображении ниже.enter image description here

Ниже мой код

    string fileTarget = @"C:\Users\sia\Desktop\Excel Automation\destination.xlsx";
    string fileTemplate = @"C:\Users\sia\Desktop\Excel Automation\source.xlsx";  

    Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel.Workbook wbTemp, wbTarget;
    Microsoft.Office.Interop.Excel.Worksheet sh;         


Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel.Workbook wbSource = excel.Workbooks.Open(fileTemplate, ReadOnly: false);
    Microsoft.Office.Interop.Excel.Worksheet WorksheetSource = wbSource.Sheets[1];
    //Copy all range in this worksheet
    WorksheetSource.UsedRange.Copy(Type.Missing);


    //Open destination workbook
    Microsoft.Office.Interop.Excel.Workbook wbDestination = excel.Workbooks.Open(fileTarget, ReadOnly: false);
    Microsoft.Office.Interop.Excel.Worksheet WorksheetDestination = wbDestination.Sheets[1];
    WorksheetDestination.UsedRange.PasteSpecial(Microsoft.Office.Interop.Excel.XlPasteType.xlPasteAll, Microsoft.Office.Interop.Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, Type.Missing, Type.Missing);
    wbDestination.SaveAs(@"C:\Users\sia\Desktop\Excel Automation\destination.xlsx");
    wbSource.Close();
    excel.Quit();
    System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);

Но я не получаю ожидаемый формат, ниже результат, который я получаю.enter image description here

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

Спасибо

1 Ответ

0 голосов
/ 03 октября 2018

Вам необходимо указать правильный столбец и диапазон, иначе по умолчанию вставка будет идти в первый столбец

workSheet.Range

Для справки: Копировать / вставить ячейки в Excel с C #

...