こんにちは。
Windows10でWPFのアプリケーションを開発しています。
Visual Studio 2017 Proを使っています。
###前提・実現したいこと
Excel(xlsx)のセルに設定した外部リンクをC#で扱いたいです。
###試したこと
(1)xlsxのシートに、値を設定。
='C:\Excelリンクテスト[Original.xlsx]Sheet1'!$A$1
外部リンクはRelationshipに値を保持する。
(2)ClosedXML, EPPlusを使ってセルのValue, Fomulaを読んでみる。
EPPlusでは該当のcellのFomulaは、"[1]Sheet1!$A$1"。Original.xlsxがない。
###発生している問題・エラーメッセージ
ところが、EPPlusにもClosedXMLにも、Relationshipsが見あたらない!
###該当のソースコード
C#
1FileInfo originalfile = new FileInfo(@"C:\Excelリンクテスト\Link.xlsx"); 2using (var excel = new ExcelPackage(originalfile)) 3{ 4foreach (var worksheet in excel.Workbook.Worksheets) 5{ 6 var cell = worksheet.Cells[1, 1]; 7 if (cell.Formula.ToString().Contains("[1]")) 8 { 9 cell.Value = 500;//<=ここで一時停止していろいろ見てみるがRelationshopがない。 10 } 11}
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Pro 2017
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。
わざわざ、ブックを分解して、内部データから、リンク先を得ようとする理由が不明です。素直に、Microsoft.Office.Interop.Excel 名前空間 を使用出来ない理由は何でしょうか?また、他のツールで、ブックからデータを抜く選択肢は、考えなかったのでしょうか?
また、ネット検索をすれば、EXCELのブックの仕様が探せます。
なにがいいたいのかわかりません。Excelはないので、Microsoft.Office.Interop.Excelは対象外です。
Excelのバージョンは? あと「試したこと」の「(2)」が 何をしているのかわからない。 気になる項目(質問)なのですが・・・
すいません。回答欄に投稿して(削除依頼しました)。こちらで返答をいただければ幸いです。
(2)は飛ばしてください。理由を聞かれても説明できないです。