c# - 使用Microsoft.Office.Interop.Excel复制Excel工作表时,是否可以保留单元格格式?

时间:2016-12-14 06:08:25

标签: c# excel formatting copy excel-interop

我有一些代码可以将所有工作表从一个excel文件复制到另一个excel文件中。此代码如下:

Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook source = ExcelApp.Workbooks.Add(missing);
Microsoft.Office.Interop.Excel.Workbook destination = ExcelApp.Workbooks.Add(missing);
string file = @"C:\SomeExcelFile.xlsx";

source = ExcelApp.Workbooks._Open
(file, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

foreach (Microsoft.Office.Interop.Excel.Worksheet s in source.Worksheets)
{
    s.Copy(Type.Missing, destination.Worksheets[destination.Worksheets.Count]);
}

在大多数情况下,这可以按预期工作,但我想解决两个问题。首先,在我复制的一个excel工作簿中,有一个格式如下的列:

$#,##0.00;[Red]-$#,##0.00

通过我的代码运行此列时,此列将重新格式化为:

$#,##0.00_);[Red]($#,##0.00)

有没有办法可以保留原始文件的格式?

其次,我希望列的宽度与原始文件保持一致。这也可能吗?

此代码用于将多个Excel工作簿合并到一个文件中。

由于

0 个答案:

没有答案