请帮忙:(WEBFORM)把DATASET 的数据到入到EXCEL中(想直接生成标准的EXCEL文件),出现如下错误!

njusea 2005-08-10 10:12:52
代码如下:
Excel.Application excel = new Excel.ApplicationClass();
excel.Visible = true;
object Missing =System.Reflection.Missing.Value;
excel.Workbooks.Add(Missing);

Worksheet worksheet = (Worksheet) excel.ActiveSheet;

for(int i=1;i<=DataGrid1.Items.Count;i++)
{
for(int j=0;j<=4;j++)
{
worksheet.Cells[i+1,j] = this.DataGrid1.Items[i].Cells[j].ToString(); //这用个循环写入数据

}
}
worksheet.SaveAs("D:\\Sheet1.xls",Missing,Missing,Missing,Missing,Missing,Missing,Missing,Missing,Missing);

excel.Quit();
System.GC.Collect();

错误如下:

HRESULT 中的异常:0x800A03EC。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: HRESULT 中的异常:0x800A03EC。

源错误:


行 329: for(int j=0;j<=4;j++)
行 330: {
行 331: worksheet.Cells[i+1,j] = this.DataGrid1.Items[i].Cells[j].ToString(); //这用个循环写入数据
行 332:
行 333: }


源文件: c:\inetpub\wwwroot\sisystem_wgjt\web\oa_person\todayagendasms.aspx.cs 行: 331

堆栈跟踪:


[COMException (0x800a03ec): HRESULT 中的异常:0x800A03EC。]


...全文
199 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimu8130 2005-08-12
  • 打赏
  • 举报
回复
学习
njusea 2005-08-12
  • 打赏
  • 举报
回复
to drk928(一起看斜阳):

你这种方法导出的EXCEL文件不是标准的EXCEL文件、,是HTML类型的EXCEL文件,

这种类型的文件不可以直接当做数据源的····

我想直接得到标准格式的EXCEL文件!!!!!
SeeSunSet 2005-08-12
  • 打赏
  • 举报
回复
Private Sub GiveDataToExcel(ByVal Dg As DataGrid)
Response.Clear()
Response.Buffer = True
Response.Charset = "GB2312"
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls")
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8") ';//设置输出流为简体中文
Response.ContentType = "application/ms-excel" '//设置输出文件类型为excel文件。
Me.EnableViewState = False
Dim myCItrad As CultureInfo = New System.Globalization.CultureInfo("ZH-CN", True)
Dim oStringWriter As StringWriter = New System.IO.StringWriter(myCItrad)
Dim oHtmlTextWriter As HtmlTextWriter = New System.Web.UI.HtmlTextWriter(oStringWriter)
'Me.ClearControls(Dg) '处理掉按钮列
Dg.RenderControl(oHtmlTextWriter)
Response.Write(oStringWriter.ToString())
Response.End()
End Sub

Private Sub ClearControls(ByVal control As Control)
Dim i As Int16
For i = control.Controls.Count - 1 To 0
ClearControls(control.Controls(i))
Next
If TypeName(control) <> "TableCell" Then
If Not IsDBNull(control.GetType().GetProperty("SelectedItem")) Then
Dim Literal As LiteralControl = New LiteralControl()
control.Parent.Controls.Add(Literal)
Try
Literal.Text = control.GetType().GetProperty("SelectedItem").GetValue(control, Nothing)
Catch ex As Exception
Response.Write(ex.Message)
End Try
control.Parent.Controls.Remove(control)
End If
Else
If Not IsDBNull(control.GetType().GetProperty("Text")) Then
Dim literal As LiteralControl = New LiteralControl()
control.Parent.Controls.Add(literal)
literal.Text = control.GetType().GetProperty("Text").GetValue(control, Nothing)
control.Parent.Controls.Remove(control)
End If
End If
Return
End Sub
hchxxzx 2005-08-12
  • 打赏
  • 举报
回复
区域设置导致某些 Excel 方法返回错误
如果最终用户的区域设置中选定的区域设置与 Microsoft Office Excel 2003 的安装语言不匹配,则用户在调用某些 Excel 方法和属性时,可能会收到以下错误信息:

mscorlib.dll 中出现“System.Runtime.InteropServices.COMException”类型的第一次机会异常。
其他信息:HRESULT 中出现异常:0x800A03EC。
-或-

ExcelProject.dll 中出现“System.Runtime.InteropServices.COMException”类型的第一次机会异常。
其他信息:格式过时或类型库无效。
有关纠正此问题的详细信息,请参见 Office 解决方案的全球化和本地化。

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/dv_wrcore/html/wroritroubleshootinginofficeatruntime.asp
njusea 2005-08-11
  • 打赏
  • 举报
回复
有权限的····
李天平 2005-08-11
  • 打赏
  • 举报
回复
看是否有权限访问

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧