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#代码打开这个文件时,我无法合并单元格。我怎么能做到这一点?
感谢
答
这是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);
我建议您使用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
'new Excel.ApplicationClass();'?没有'新的Excel.Application();'? – dovid 2015-02-09 08:34:55