繁体   English   中英

如何使用 C# 将选定列的所有行从一个 excel 文件复制到另一个文件

[英]How to copy all the rows of selected column from one excel file to another using C#

我正在使用此代码,但由于我想复制具有特定属性的整行并且我不知道总计行的计数。

        Excel.Application excelApplication = new Excel.Application();

        srcPath = "C:\\Users\\sn314708\\Desktop\\Excel\\1.xlsx";
        Excel.Workbook srcworkBook = excelApplication.Workbooks.Open(srcPath);
        Excel.Worksheet srcworkSheet = (Microsoft.Office.Interop.Excel.Worksheet)srcworkBook.Sheets.get_Item(1);

        destPath = "C:\\Users\\sn314708\\Desktop\\Excel\\2.xlsx";
        Excel.Workbook destworkBook = excelApplication.Workbooks.Open(destPath, 0, false);
        Excel.Worksheet destworkSheet = (Microsoft.Office.Interop.Excel.Worksheet)destworkBook.Sheets.get_Item(1);

        Excel.Range from = srcworkSheet.Range["A1:C100"];
        Excel.Range to = destworkSheet.Range["A1:C100"];


        from.Copy(to);

        destworkBook.SaveAs("C:\\Users\\sn314708\\Desktop\\Excel\\2 " + DateTime.Now.ToString("MM_dd_yyyy") + ".xlsx");

要么您修复要复制的最大行数,要么您可以找到整个工作表中使用的最后一行(我认为它更好)。 你可以做的一个样本:

int lastUsedRow = srcworkSheet.Cells.Find("*", System.Reflection.Missing.Value,
                     System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                     XlSearchOrder.xlByRows, XlSearchDirection.xlPrevious,
                     false, System.Reflection.Missing.Value, System.Reflection.Missing.Value).Row;


int colIndex = 1;
for(int rowIndex = 1; rowIndex <= lastUsedRow; rowIndex++ )
{
    destworkSheet.Cells[rowIndex, colIndex] = srcworkSheet.Cells[rowIndex, colIndex];
}

行和列的索引总是从 1 开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM