C#保存Excel文件并启用合并单元格

问题描述:

我在C#中创建了一个创建excel文件的代码。下面是代码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#代码打开这个文件时,我无法合并单元格。我怎么能做到这一点?

感谢

+0

我建议您使用EPPlus库进行excel数据操作,它易于使用且工作更快。你可以下载它[在这里](https://epplus.codeplex.com/releases/view/89923)EPPlus的合并示例描述[这里](http://stackoverflow.com/questions/6172488/merge-cells-using -epplus) – Fragment 2015-02-09 08:26:56

+0

'new Excel.ApplicationClass();'?没有'新的Excel.Application();'? – dovid 2015-02-09 08:34:55

这是becuse使用Excel.XlSaveAsAccessMode.xlShared。这适用于许多限制,请参阅here。使用Excel.XlSaveAsAccessMode.xlNoChange

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

谢谢!它工作得很好...... – Rohan 2015-02-09 09:35:42

+0

@Rohan请“接受答案” – dovid 2015-02-09 09:39:01