使用SaveFileDialog时捕获ThreadStateException

时间:2016-11-03 08:11:06

标签: c# asp.net closedxml

我遇到了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。这个例外是   仅在调试器附加到进程时才会引发。

也许有人可以帮我解决这个问题。谢谢。

0 个答案:

没有答案