C#和Excel最佳实践

rlp*_*rlp 5 c# excel office-interop

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

如果你们对我如何更好地完成任务有任何意见,我非常希望.我一直在寻找Office的Visual Studio工具,但我不确定它的功能.我知道它需要制作Excel加载项,但它有助于Excel自动化吗?

我一直试图在Visual Studio 2012中使用C#查找有关使用Excel的信息.我确实找到了一些很好但很简短的教程.但是,我真的希望有一本书能够更深入地学习该领域的功能和最佳实践.使用我的有限知识搜索亚马逊只能让我使用旧版本的Visual Studio预订VSTO.

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

Mef*_*eff 4

我以前用过这个,发现它非常好,并且非常容易阅读和编写 Excel 表格。不确定更高级的东西(它就在那里,我只是从未尝试过),但看看吧。适用于 OOXML 格式 (.xlsx),没有 COM 互操作或 VBA 或任何东西,纯 .Net

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();
Run Code Online (Sandbox Code Playgroud)

只需填写行、列和格式就比上面简单了:)