我可能错误地措辞了这个问题,但它更容易解释。
基本上在我的表单上,我有一个按钮,如果你点击它,它会打开一个 OpenFileDialog 搜索框,你可以打开一个 excel 文件,它会显示在表单中的各种 datagridview 框中。然后您可以将数据输入到 Excel 工作表中。然而,因为我是一个新手程序员,我只能通过再次单击按钮并再次通过 OpenFileDialog 来更新那些 datagridview。
这是我最初用来阅读 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 文件的路径。
希望这是有道理的。