私はおそらく質問を間違って言いましたが、説明するのは簡単です。
基本的に私のフォームにはボタンがあり、クリックすると OpenFileDialog 検索ボックスが開き、Excel ファイルを開くことができ、フォームのさまざまな datagridview ボックスに表示されます。その後、Excel ワークシートにデータを入力できます。ただし、私は初心者のプログラマーであるため、ボタンをもう一度クリックして OpenFileDialog を再度実行することによってのみ、これらのデータグリッドビューを更新できます。
これは、Excel ワークシートを最初に読み取るために使用するコードです。
private void button18_Click(object sender, EventArgs e)
{
using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Workbook|*.xlsx", ValidateNames = true })
{
if (ofd.ShowDialog() == DialogResult.OK)
{
FileStream fs = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
IExcelDataReader reader = ExcelReaderFactory.CreateOpenXmlReader(fs);
reader.IsFirstRowAsColumnNames = true;
result = reader.AsDataSet();
cboSheet.Items.Clear();
cboSheet_mirror.Items.Clear();
resultSheet.Items.Clear();
foreach (System.Data.DataTable dt in result.Tables)
{
cboSheet.Items.Add(dt.TableName);
cboSheet_mirror.Items.Add(dt.TableName);
resultSheet.Items.Add(dt.TableName);
}
reader.Close();
}
(...)
cboSheet と resultSheets は関係ありません。これらは、さまざまなワークシートをナビゲートするために使用するものです。
私がやりたいことは、編集された Excel ワークシートで datagridview を更新するメソッドを作成することですが、ユーザーが毎回 OpenFileDialog プロセスを実行する必要がなく、プログラムは Excel ファイルへのパスを知っているだけです。
うまくいけば、それは理にかなっています。