Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#和Excel最佳实践_C#_Excel_Office Interop - Fatal编程技术网

C#和Excel最佳实践

C#和Excel最佳实践,c#,excel,office-interop,C#,Excel,Office Interop,我正在使用Microsoft.Office.interop.Excel进行大量MS Excel interop I C#(Visual Studio 2012)。它需要大量令人厌烦的手动代码来包含Excel公式、对文本和数字进行格式化以及制作图形 我非常希望你们中的任何人能对我如何更好地完成这项任务提出一些意见。我一直在研究VisualStudioToolsforOffice,但我不确定它的功能。我知道制作Excel外接程序需要它,但它是否有助于实现Excel自动化 我一直在拼命地寻找有关使用C

我正在使用Microsoft.Office.interop.Excel进行大量MS Excel interop I C#(Visual Studio 2012)。它需要大量令人厌烦的手动代码来包含Excel公式、对文本和数字进行格式化以及制作图形

我非常希望你们中的任何人能对我如何更好地完成这项任务提出一些意见。我一直在研究VisualStudioToolsforOffice,但我不确定它的功能。我知道制作Excel外接程序需要它,但它是否有助于实现Excel自动化

我一直在拼命地寻找有关使用C#在Visual Studio 2012中使用Excel的信息。我确实找到了一些很好但很短的教程。然而,我真的希望有一本书能够更深入地了解该领域的功能和最佳实践。用我有限的知识搜索Amazon,只会给我一本关于使用旧版本Visual Studio的VSTO的书


我不想使用VBA。我的应用程序主要使用Excel来可视化从不同来源编译的数据。我还对不需要Excel的数据处理进行了说明。此外,我会写C,但不会写VB。

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

制作饼图的示例代码:

//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();
只需填写行、列和格式就比上述内容简单:)

请参见,它广泛用于此特定用途,拥有大量用户群,并且正在维护和增强

还有一些提示:

  • 创建帮助程序以根据注入的条件设置特定范围的格式
  • 使用R1C1引用进行偏移,否则代码将变得一团糟
  • 尽可能多地使用命名范围,因为这样可以更容易地设置帖子格式
  • 将代码抽象到样式类中,不要将其添加到逻辑中

现在,ePlus已移动到此存储库