【问题标题】:Export an excel from my datatable with a Savefile dialog使用“保存文件”对话框从我的数据表中导出 excel
【发布时间】:2014-07-03 12:43:39
【问题描述】:

我正在使用 VB.Net。我想使用 Savefile 对话框从我的数据表中导出一个 excel。但我得到错误:

"当前线程必须设置为单线程单元(STA)模式 在可以进行 OLE 调用之前。确保您的 Main 函数具有 STAThreadAttribute 标记就可以了。仅在以下情况下才会引发此异常 调试器已附加到进程。”

我用谷歌搜索了很多,但对于我的“Web 应用程序”,它无法解决。

这是我的代码:

 Dim saveFileDialog1 As New SaveFileDialog()
    saveFileDialog1.Filter = "Excel File|*.xls"
    saveFileDialog1.FilterIndex = 2
    saveFileDialog1.RestoreDirectory = True

    If saveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _
   Then
        ExportExcel(dt, "Appraisals" + value.ToString())
    End If

【问题讨论】:

  • 您是否考虑过发布进行 OLE 调用的实际代码?
  • OLE 调用代码没有问题。此错误发生在打开 SavefileDialog 行时,此处: If saveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _ Then
  • Waitaminute,您是否尝试在 Asp.net/webforms(发布标签)应用程序中使用 Windows.Forms SaveFileDialog(代码参考)?
  • @sdf 实际上我已经尝试了很多保存文件对话框(除了这个 Windows.Forms.DialogResult.OK),但所有这些都返回了相同的错误。我仍然被困在里面。

标签: c# asp.net vb.net excel


【解决方案1】:

我找不到你的代码的错误,但你可以试试我的 =D

Dim workBookName As String = "Computers"

If Not workBookName = "" Then
   SaveFileDialog1.Filter = "Excel WorkBook|*.xlsx"
   SaveFileDialog1.ShowDialog()
   Location = SaveFileDialog1.FileName
   ExportExcel(dt, "Appraisals" + value.ToString())
Else
   MsgBox("Please enter Worksheet Name", MsgBoxStyle.Critical, "Export To Excel")
End If

【讨论】:

  • OLE 调用代码没有问题。此错误发生在打开 SavefileDialog 行时,此处: If saveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _ Then
猜你喜欢
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-07
相关资源
最近更新 更多