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或任何东西,纯。净
用于制作饼图的示例代码:
//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格式
- 把你的代码抽象成风格类,不要把它与你的逻辑“一致”
- C#Excel.Interop检测sorting操作
- 使用Excel InterOp在C#中设置饼图样式
- C# – 未注册的类 – 使用VBIDE创build一个包含macros的Excel电子表格
- 甚至在执行AutoFit()on列后,Excel.Range.Text值仍然以“######”的forms读取
- f#读取xls文件 – 如何parsing一个value2对象
- C#COM Excel插件 – 如何添加帮助Fxbutton?
- 程序终止后,Excel进程仍在运行
- C#是Microsoft.Office.Interop.Excel.Range.Cell.Count一个计算每个调用或一个常量
- 如何从vsto插件中以编程方式加载自动插件(dll)