2017-06-13 2 views
1

pour écrire des données de Matlab 2015b dans des fichiers Excel J'utilise la bibliothèque .NET EPPlus (v4.1, http://epplus.codeplex.com/). Lire et écrire des données tout fonctionne. Le formatage aussi bien. Cependant, lors de la création de graphiques, je tombe sur un message d'erreur que je ne peux pas résoudre. Laissez ws_chart l'objet de feuille, puis lorsque vous appelezEPPlus de Matlab: lors de la création d'un graphique, eShapeStyle manquait

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

Le message d'erreur suivant apparaît

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

J'ai trouvé que eShapeStyle est défini dans EPPlus/Drawing/ExcelShape.cs comme enum, mais en utilisant diverses importations ne fonctionnait pas. J'utilise en ce moment

import System.Drawing.* 
import OfficeOpenXml.Drawing.* 
import OfficeOpenXml.Style.* 

Je ne vois pas aussi un espace de noms OfficeOpenXml.Drawing.ExcelShape dans Matlab. Est-ce que quelqu'un peut m'aider avec ça? PS: Je sais que je pourrais aussi utiliser l'interface ActiveX, mais je la trouve lente et ne me laisse pas utiliser Excel pendant que Matlab écrit via ce protocole.

Répondre

1

Avec l'aide d'un collègue, je viens de trouver la solution. Il s'avère que j'étais assez proche, et le message d'erreur Matlab pointait dans la bonne direction. Le C# enum eShapeStyle n'est pas défini dans un espace de noms, donc Matlab ne le charge pas (MATLAB exige que tous les types .NET soient dans un espace de noms). Nous l'avons déplacé à l'intérieur namespace OfficeOpenXml.Drawing, recompilé la DLL et maintenant cela fonctionne.