来自Matlab的EPPlus:在创建图表时,eShapeStyle缺失

时间:2017-06-13 06:23:38

标签: c# excel matlab epplus epplus-4

使用.NET EPPlus库(v4.1,http://epplus.codeplex.com/)将数据从Matlab 2015b写入Excel文件。读取和写入数据都有效。格式化也是如此。但是,在创建图表时,我遇到了一条无法解决的错误消息。让ws_chart成为工作表对象,然后调用

ws_chart.Drawings.AddChart('Chart1', OfficeOpenXml.Drawing.Chart.eChartType.ColumnStacked);   

出现以下错误消息

Message: The namespace for the type 'eShapeStyle' does not exist. MATLAB requires all .NET types to be within a namespace.
Source: dotnet/cli
HelpLink:  

我发现eShapeStyle中的enum定义为import System.Drawing.* import OfficeOpenXml.Drawing.* import OfficeOpenXml.Style.* ,但使用各种导入功能无效。我现在正在使用

OfficeOpenXml.Drawing.ExcelShape

我也没有在Matlab中看到名称空间NullReferencePointer。任何人都可以帮我这个吗?

PS:我知道我也可以使用ActiveX接口,但我发现它很慢,并且在Matlab通过此协议编写时不会让我使用Excel。

1 个答案:

答案 0 :(得分:1)

在同事的帮助下,我刚刚找到了解决方案。事实证明我非常接近,并且Matlab错误消息指向了正确的方向。 C#enum eShapeStyle未在命名空间中定义,因此Matlab不加载它(MATLAB要求所有.NET类型都在命名空间内)。我们已将其移至namespace OfficeOpenXml.Drawing内,重新编译了dll,现在它可以正常工作。