如何将excel工作表复制到另一个excel工作簿,而无需打开c#winforms中的excel文件?
在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表格,复制所有的数据与他们的风格?
要复制工作表及其所有内容和格式,而不select和复制工作表本身的内容,可以使用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);
但是,如果你的问题实际上是你想要将工作簿的内容复制到一个通用的工作簿而不打开文件,那么我不相信这是可能的。 您需要打开文件才能访问数据。