我遇到了SaveFileDialog
的问题。背景是我想将数据从GridView导出到Excel文件。我正在使用ClosedXML,但问题是该文件直接导出到指定的文件夹。
同时,我需要一个窗口来显示保存文件的位置。这就是我使用SaveFileDialog
的原因。
这是我的代码:
string date = DateTime.Now.ToString("yyyyMMdd hhmm tt");
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Excel File (*.xlsx)|*.xlsx";
saveFileDialog1.FileName = "EmployeeData " + date + ".xlsx";
saveFileDialog1.Title = "Save the Excel File";
XLWorkbook wb = new XLWorkbook();
wb.Worksheets.Add(bl.BindGridViewHasil(txtEmployeeCode.Text, txtEmployeeNumber.Text), "Sheet1");
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
wb.SaveAs(saveFileDialog1.FileName);
}
当我尝试运行时,我得到了这个:
类型' System.Threading.ThreadStateException'的例外情况发生了 在System.Windows.Forms.dll中但未在用户代码中处理
附加信息:当前线程必须设置为单线程 在进行OLE调用之前的公寓(STA)模式。确保你的 主函数上标有STAThreadAttribute。这个例外是 仅在调试器附加到进程时才会引发。
也许有人可以帮我解决这个问题。谢谢。