注册 登录
编程论坛 ASP.NET技术论坛

关于把数据库中的数据导出到Excel的问题?!

zhzh 发布于 2007-04-12 17:32, 1305 次点击

我的页面上有一个文本筐和一个按扭我想把文本筐里面保存的路径的导出数据,导到Excel中!但是出现了以下这个错误提示,请教是什么意思啊?

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

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

我按扭的代码是

private void btn_Export_Click(object sender, System.EventArgs e)
{
Test test=new Test();
DataSet ds=test.GetRecords();

OWC.SpreadsheetClass sheet=new OWC.SpreadsheetClass();
int row=1;
int col=1;

foreach (DataRow dr in ds.Tables[0].Rows)
{
col=1;
foreach(DataColumn dc in ds.Tables[0].Columns)
{
sheet.ActiveSheet.Cells[row,col]=dr[dc].ToString();
col++;
}
row++;
}
     //错误提示在下面这句话!
sheet.ActiveSheet.Export(Server.MapPath(".")+"\\"+this.txt_File.Text,OWC.SheetExportActionEnum.ssExportActionNone);
Response.Redirect(this.txt_File.Text);

}

求教!!学习就是最大的乐趣!先干为敬!!

8 回复
#2
zhzh2007-04-12 21:27

版主救命啊

#3
Kendy1234562007-04-13 09:20
EXCEL对象不定义不实例化就用吗?还是在外面已经定义过了

代码不全呀
#4
bygg2007-04-13 09:37
你是将这些数据导出到Excel的那个Sheet页里??
#5
hit_852007-04-13 09:55

我有一段代码,不知正确不你试试

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;
namespace CommonFunction
{
/// <summary>
/// excel 的摘要说明。
/// </summary>
public class excel : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnGetExcel;
protected System.Web.UI.WebControls.DataGrid dgExcel;

private void Page_Load(object sender, System.EventArgs e)
{
DataSet objDataset = new DataSet();
SqlConnection objConn = new SqlConnection();
objConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
objConn.Open();
SqlDataAdapter objAdapter = new SqlDataAdapter("Select top 5 * from customers where country='USA'",objConn);
objAdapter.Fill(objDataset);
DataView oView = new DataView(objDataset.Tables[0]);
dgExcel.DataSource = oView;
dgExcel.DataBind();
objConn.Close();
objConn.Dispose();
objConn = null;
if(Request.QueryString["bExcel"] == "1")
{
Response.ContentType = "application/vnd.ms-excel";

Response.Charset = "";

//关闭 ViewState
EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();//将信息写入字符串
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);//在WEB窗体页上写出一系列连续的HTML特定字符和文本。
//此类提供ASP.NET服务器控件在将HTML内容呈现给客户端时所使用的格式化功能
//获取control的HTML
dgExcel.RenderControl(hw);//将DATAGRID中的内容输出到HtmlTextWriter对象中
// 把HTML写回浏览器
Response.Write(tw.ToString());
Response.End();
}

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnGetExcel.Click += new System.EventHandler(this.btnGetExcel_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void btnGetExcel_Click(object sender, System.EventArgs e)
{
Response.Redirect("excel.aspx?bExcel=1");
}

}
}

#6
zhzh2007-04-13 11:34

就是当点击按扭后,从数据库中读出的数据以输出到Excel上面!
换了一种方法,实现了!谢谢大家关注!
hit_85的方法也可以,我就是要实现的这个功能.但是hit_85的方法少了一个给输出文件起个文件名的textbox

再次谢谢!

但是第一种方法确实不知道错在哪里了?
难道是缺少Excel的定义?和实例化对象?

Kendy123456版主能否给出具体的写法研究一下!

#7
zhzh2007-04-13 12:03
hit_85的方法输出的汉字变成了乱码!?!

Response.Charset = "GB2312";

也不行?怎么回事啊
#8
zhzh2007-04-13 22:10
hit_85,你好!
能否解释一下为什么读取出来的文字会是乱码
#9
zhzh2007-04-14 10:17

明白了~~呵呵
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");

1