【问题标题】:C# save excel file with merged cells enabledC#保存启用合并单元格的excel文件
【发布时间】:2015-02-09 07:55:40
【问题描述】:

我用 C# 编写了一个代码,它创建了一个 excel 文件。这是代码

    Excel.Application xlApp;
    Excel.Workbook xlWorkBook;
    Excel.Worksheet xlWorkSheet;
    object misValue = System.Reflection.Missing.Value;

    xlApp = new Excel.ApplicationClass();
    xlWorkBook = xlApp.Workbooks.Add(misValue);
    xlWorkBook.CheckCompatibility = false;
    xlWorkBook.DoNotPromptForConvert = true;

    xlApp.Visible = true; // ensure that the excel app is visible.
    xlWorkSheet = (Excel.Worksheet)xlApp.ActiveSheet; // Get the current active worksheet.
    Microsoft.Office.Interop.Excel.Worksheet worksheet2 = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2); //Get more work sheet if neccessary

    xlWorkSheet.Cells[3, 1] = "Name";

    xlWorkBook.SaveAs(filepath + fileName, 51, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlShared, misValue, misValue, misValue, misValue, misValue);  //For excel 2007 and above
    xlWorkBook.Close(true, misValue, misValue);
    xlApp.Quit();

现在,问题是当我再次打开这个文件时,我看到“合并和中心”选项仍然被禁用。因此,当我通过 C# 代码打开此文件时,我无法合并单元格。我怎样才能做到这一点?

谢谢

【问题讨论】:

  • 我建议您使用 EPPlus 库进行 excel 数据操作,它易于使用且运行速度更快。您可以下载它here EPPlus 的合并示例描述here
  • new Excel.ApplicationClass();?没有new Excel.Application();?

标签: c#


【解决方案1】:

这是因为您使用了Excel.XlSaveAsAccessMode.xlShared。这适用于许多限制,请参阅here。改用Excel.XlSaveAsAccessMode.xlNoChange:

xlWorkBook.SaveAs(filepath + fileName, 51, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlNoChange, misValue, misValue, misValue, misValue, misValue);  

【讨论】:

  • @Rohan 请“接受答案”
猜你喜欢
  • 2016-12-29
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 2010-10-06
  • 2018-03-30
  • 2015-09-19
  • 2021-11-21
  • 2015-10-12
相关资源
最近更新 更多