C#和Excel的最佳实践

我正在使用Microsoft.Office.Interop.Excel进行大量的MS Excel互操作,我C#(Visual Studio 2012)。 它需要大量繁琐的手动代码来包含Excel公式,进行文本和数字的格式化,以及制作图表。

如果您对我如何更好地完成任务有任何意见,我非常希望。 我一直在寻找Office的Visual Studio工具,但我不确定其function。 我得到它是需要制作Excel加载项,但它有助于做Excel自动化?

我拼命地试图find使用C#在Visual Studio 2012中使用Excel的信息。 我发现了一些很好但很短的教程。 不过,我真的希望一本书能更深入地了解function和最佳实践。 用我有限的知识search亚马逊,只能使用Visual Studio的旧版本,在VSTO上做书。

我不想使用VBA。 我的应用程序使用Excel主要用于从不同来源编译的可视化。 我也去数据处理Excel不是必需的。 另外,我可以编写C#而不是VB。

我以前用过这个,发现它非常好,很容易读写Excel表格。 不知道更先进的东西(它在那里,我从来没有尝试过),但看看它。 在OOXML格式(.xlsx)上工作,没有COM互操作或VBA或任何东西,纯。净

http://epplus.codeplex.com/

用于制作饼图的示例代码:

//ExcelPackage is a class within the EPPlus DLL var p = new ExcelPackage(); p.Workbook.Worksheets.Add("sheetName") var ws = p.Workbook.Worksheets.First(); //Add the piechart var pieChart = ws.Drawings.AddChart("crtExtensionsSize", eChartType.PieExploded3D) as ExcelPieChart; //Set top left corner to row 1 column 2 pieChart.SetPosition(1, 0, 2, 0); pieChart.SetSize(400, 400); pieChart.Series.Add(ExcelRange.GetAddress(4, 2, row-1, 2), ExcelRange.GetAddress(4, 1, row-1, 1)); pieChart.Title.Text = "Extension Size"; //Set datalabels and remove the legend pieChart.DataLabel.ShowCategory = true; pieChart.DataLabel.ShowPercent = true; pieChart.DataLabel.ShowLeaderLines = true; pieChart.Legend.Remove(); 

只是填写行,列和格式比上面简单:)

http://exceldna.codeplex.com/ ,用于广泛用于这个特定用途,用户群庞大,维护和增强。

还有一些提示:

  • 根据注入条件创build助手来格式化特定范围
  • 使用R1C1引用来抵消或您的代码将变得一团糟
  • 尝试尽可能经常使用命名范围,因为这可以更轻松地创buildpost格式
  • 把你的代码抽象成风格类,不要把它与你的逻辑“一致”