C#でExcelファイルを読み込むツールを作成しているものです。
Excelの読み込みにClosedXMLを使用しています。
以下のような例を解決する方法があるか模索しております。
あるExcelファイル「Book1.xlsx」があります。
シートは2シートあり、「hoge」「huga」とシート名が付けられています。
それぞれのシートのA1セルに以下が入力されているとします。
・hugaシートのA1セルに数値「500」
・hogeシートのA1セルに数式「=100&huga!$A$1」
この条件で以下のコードから結果をコンソールで出力すると、期待通り
「100500」を得ることができます。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ClosedXML.Excel; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { using (var iwb = new XLWorkbook(@"C:\Users\hoge\Desktop\Book1.xlsx")) { var iws = iwb.Worksheet("hoge"); var hogeCellA = iws.Cell(1, 1).Value; Console.WriteLine(hogeCellA); Console.ReadLine(); } } } }
しかし、シート「huga」を「ふが」に変更し、hogeのA1セルが「=100&ふが!$A$1」の状態でコードを走らせると「Exceptionはハンドルされませんでした。Identifier expected.」とエラーが表示されます。
「=ふが!$A$1」であれば問題なく「500」が出力されますが、「&」で組み合わせたい場合にエラーになります。
何度か検証した結果シート名が日本語や''で囲まれているものが参照式にあるとエラーになるようで、シート名がアルファベットの場合だと問題なく運用できることがわかりました。
できればシート名に制限をかけたくないので、せめてシート名が日本語の場合でも読み込めるようにする方法はないのでしょうか?


回答1件
あなたの回答
tips
プレビュー