Excelから数式を他のタイプにエクスポートする方法

時には、作業ニーズに応じてコード内でExcelの数式を他の形式にエクスポートする必要があります。Aspose.Cellライブラリはこれらのニーズを満たすことができます。以下の内容では、Excelの数式を他の形式にエクスポートする方法についていくつかの手法を紹介します。これらの方法が参考になれば幸いです。

Aspose.Cellsを使用して目標を達成するためのサンプルコードを準備しています。必要なサンプルファイルも提供します。

サンプルファイル:Sample.xlsx

数式をLaTeX表現としてエクスポート

Excelの数式をLaTeX表現としてエクスポートしたい場合は、ToLaTeX()メソッドを使用できます。

以下のサンプルコードは、ToLaTeX()メソッドを使って得られた結果をHTMLに挿入する方法を示しています。

C#による-LaTeX

string dirPath = @"";
Workbook workbook = new Workbook(dirPath + "Sample.xlsx");
StringBuilder sb = new StringBuilder();
sb.Append("<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n <meta charset=\"UTF-8\">\r\n <title>Title</title>\r\n <script type=\"text/javascript\" async src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML\"></script>\r\n <script type=\"text/x-mathjax-config\">\r\n MathJax.Hub.Config({\r\n\t tex2jax: {\r\n\t inlineMath: [['$','$'], ['\\\\(','\\\\)']],\r\n\t processEscapes: true\r\n\t }\r\n\t});\r\n </script>\r\n</head>\r\n<body>");
ShapeCollection shapes = workbook.Worksheets[0].Shapes;
TextBox textBox = (TextBox)shapes[0];
EquationNode mathNode = textBox.GetEquationParagraph().GetChild(0);
string s = mathNode.ToLaTeX();
sb.AppendLine("<p>$" + s + "$</p>");
sb.Append("</body>\r\n</html>");
File.WriteAllText(@"result.html", sb.ToString());

数式をMathML表現としてエクスポート

Excelの数式をMathML表現としてエクスポートしたい場合は、ToMathML()メソッドを使用できます。

以下のサンプルコードは、ToMathML()メソッドを使用し、生成された結果をHTMLに挿入する方法を示しています。

C#による-MathML

string dirPath = @"";
Workbook workbook = new Workbook(dirPath + "Sample.xlsx");
StringBuilder sb = new StringBuilder();
sb.Append("<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n <meta charset=\"UTF-8\">\r\n <title>Title</title>\r\n <script type=\"text/javascript\" async src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML\"></script>\r\n</head>\r\n<body>");
ShapeCollection shapes = workbook.Worksheets[0].Shapes;
TextBox textBox = (TextBox)shapes[0];
EquationNode mathNode = textBox.GetEquationParagraph().GetChild(0);
sb.AppendLine(mathNode.ToMathML());
sb.Append("</body>\r\n</html>");
File.WriteAllText(@"result.html", sb.ToString());