前提・実現したいこと
CLosedXMLを使ってExcelを開きたいのですが、パスが通らず開くことができません。何が足りないのかご教示願います。
発生している問題・エラーメッセージ
System.FormatException: '入力文字列の形式が正しくありません。'
該当のソースコード
C#
1var path = @"\Users******\source\repos\testapp\testapp\bin\Debug****.xlsx"; 2// Excelファイルを読み込み 3using (var book = new XLWorkbook(path, XLEventTracking.Disabled))←ここでエラーが起こります。 4{ 5var sheet = book.Worksheet("しーと"); 6sheet.Cell("A1").Value = "Value"; 7book.Save(); 8}
試したこと
var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "****.xlsx");
var path = Path.GetFullPath("..****.xlsx");
Uri u1 = new Uri("C:\Users****\Desktop");
Uri u2 = new Uri(u1, "..*.xlsx");
var path = u2.LocalPath;
調べて出てきたこれらのコードは試しました。
しかしいずれもエラーを出しました。
追記
@"\Users******\source\repos\testapp\testapp\bin\Debug****.xlsx";
ここの部分を
@"C:\Users******\source\repos\testapp\testapp\bin\Debug****.xlsx";
と変えると
System.IO.DirectoryNotFoundException: 'パス 'c:\users******\source\repos\testapp\testapp\bin\Debug\Users******\source\repos\testapp\testapp\bin\Debug****.xlsx' の一部が見つかりませんでした。'
とエラーが出ます。
追記
var path = @"*****.xlsx";
String filename = path;
if (File.Exists(filename))
{
MessageBox.Show("存在する");
}
else
{
MessageBox.Show("存在しない");
}
このコードを実行したところ”存在する”が表示されました。
なのでやはりコード以外の場所で問題があるかもしれません。
追記
OpenXMLでも試した結果
var filename = @"C:\Users\****\source\repos\testapp\testapp\bin\Debug\****.xlsx";
using (SpreadsheetDocument document = SpreadsheetDocument.Open(filename, false))
{
MessageBox.Show("開いた");
}
これで実行したところ実行結果は”開いた”が表示されました。
追記
Excelを新規作成し、空のまま保存したものをClosedXMLで開こうとしたら開くことができた。
補足情報(FW/ツールのバージョンなど)
VisualStudio 2017
ClosedXML 0.93.1
Excel for Ofiice 365 MSO (16.0.10730.20053) 32ビット
回答4件
あなたの回答
tips
プレビュー