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