如何复制EXCEL导入另一个Excel工作簿,工作表,而无需打开在C#中的WinForms Exce

2019-09-02 19:18发布

在C#中的Windows应用程序,我有很多的Excel工作簿,我想是到工作表从Excel工作簿复制到一个工作簿。 这是可能的,但我已经为了做到这一点,打开Excel工作簿。

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

        app.Visible = true;

        app.WindowState = XlWindowState.xlMinimized;

        app.Workbooks.Add("");
        app.Workbooks.Add(@"Path\WorkBook1.xlsx");
        app.Workbooks.Add(@"Path\WorkBook2.xlsx");

        for (int i = 2; i <= app.Workbooks.Count; i++)
        {
            int count = app.Workbooks[i].Worksheets.Count;

            app.Workbooks[i].Activate();
            for (int j = 1; j <= count; j++)
            {
                Excel._Worksheet ws = (Excel._Worksheet)app.Workbooks[i].Worksheets[j];

                ws.Select(true);
                ws.Cells.Select();

                Excel.Range sel = (Excel.Range)app.Selection;
                sel.Copy(Type.Missing);

                Excel._Worksheet sheet = (Excel._Worksheet)app.Workbooks[1].Worksheets.Add(
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing
                    );

                sheet.Paste(Type.Missing, Type.Missing);

                sheet.Name = app.Workbooks[i].Worksheets[j].Name;
            }


        }

        app.DisplayAlerts = false;
        app.Workbooks[3].Close();
        app.Workbooks[2].Close();
        app.DisplayAlerts = true;

        Cursor = Cursors.Default;

        MessageBox.Show("Successfully Generated Excel...!", "Excel Tool", MessageBoxButtons.OK, MessageBoxIcon.Information);

是否可以在不打开Excel工作表,复制所有与他们的风格中的数据?

Answer 1:

要复制工作表及其所有内容和格式而不选择和复制工作表本身,你可以利用的内容Worksheet.Copy 。 你会使用它像这样:

Excel._Worksheet ws = (Excel._Worksheet)app.Workbooks[i].Worksheets[j];
Excel._Worksheet sheet = (Excel._Worksheet)app.Workbooks[1].Worksheets.Add(
                Type.Missing, Type.Missing, Type.Missing, Type.Missing
                );
ws.Copy(Before: sheet);

但是,如果你实际上是你的问题的意思是,你要在工作簿中的内容复制到一个共同的工作簿,而不用打开该文件,然后我不相信这是可能的。 您需要打开访问数据的文件。



文章来源: How to copy excel worksheets Into another excel workbook without opening the excel file in c# winforms?