作成日: 2023/11/28 最終更新日: 2024/04/17
文書種別
不具合
状況
修正済み
詳細
SaveExcelメソッドを用いてFlexGridの内容をExcel保存する際、保存先に同名ファイルが存在しそのファイルが開いている場合、try~catch (NullReferenceException exception) のコードを用いてNullReferenceExceptionをキャッチし、処理を行うことができません。
回避方法
この問題は2023J v3.1(4.6.20233.643)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
File.Openメソッド実行時に発生する例外をキャプチャします。
var fbd = new FolderBrowserDialog();
fbd.Description = @"保存先を指定してください";
fbd.RootFolder = Environment.SpecialFolder.Desktop;
fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
fbd.ShowNewFolderButton = true;
if (fbd.ShowDialog(this) == DialogResult.OK)
{
// 対応策
FileStream fs = null;
try
{
fs = File.Open(fbd.SelectedPath + "/test.xlsx", FileMode.Open);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
finally
{
if(fs != null)
{
fs.Close();
fs.Dispose();
}
}
// 本来の保存処理
c1FlexGrid1.SaveExcel(fbd.SelectedPath + "/test.xlsx",
FileFlags.AsDisplayed | FileFlags.IncludeFixedCells);
}