Я написал код, который работает только с файлами xlsx, если я запускаю его с файлами xls, я получаю «Ошибка метода копирования класса Range». Мне нужно решение, которое будет работать именно с файлами xls.
using System;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
public class Xls: CopyPaste
{
public override void Run() {
String srcPath = "C:\\test1.xls";
Excel.Application xlsSrcApp;
xlsSrcApp = new Excel.Application();
Excel.Workbook srcXls = xlsSrcApp.Workbooks.Open(srcPath);
Excel.Worksheet srcWrks = (Excel.Worksheet)srcXls.Worksheets["Sheet1"];
Excel.Range srcRange;
String destPath = "C:\\test2.xls";
Excel.Application xlsDestApp;
xlsDestApp = new Excel.Application();
Excel.Workbook destXls = xlsSrcApp.Workbooks.Open(destPath, 0, false);
Excel.Worksheet destWrks = (Excel.Worksheet)xlsDestApp.Worksheets["Sheet1"];
Excel.Range destRange;
Excel.Range srcRange = srcWrks.Range["A1:B2"];
Excel.Range destRange = destWrks.Range["A10"];
srcRange.Copy(destRange);
destXls.SaveAs(destPath);
xlsSrcApp.Application.DisplayAlerts = False;
srcXls.Close(true, null, null);
xlsSrcApp.Quit();
xlsDestApp.Application.DisplayAlerts = False;
destXls.Close(true, null, null);
xlsDestApp.Quit();
}
}