在网页里可以把DataGrid里的数据转到Excel里面吗?
如题:如果可以,又怎么转呢?谢谢先 问题点数:20、回复次数:10Top
1 楼flers(思源)回复于 2003-12-02 17:07:12 得分 5
'导出数据
Private Sub btn_out_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_out.Click
'导出EXCEL
If DataGrid1.Items.Count > 0 Then
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=OutDate.xls")
Response.ContentType = "application/vnd.ms-excel"
HttpContext.Current.Response.Charset = ""
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8
Me.EnableViewState = False
Dim tw As System.IO.StringWriter = New System.IO.StringWriter()
Dim hw As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(tw)
DataGrid1.RenderControl(hw)
HttpContext.Current.Response.Write(tw.ToString())
HttpContext.Current.Response.End()
Else
Response.Write("<script>alert('没有统计出任何数据!')</" & "script>")
End If
Me.EnableViewState = True
End SubTop
2 楼dahuzizyd(你就是我心中的女神)回复于 2003-12-02 18:54:00 得分 5
这个是孟老大的:
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=BF0A54F9-C7C7-4200-BD9A-802AC1F5DE50Top
3 楼weilt(开往春天的地铁)回复于 2003-12-03 09:34:47 得分 0
第一种方法已试过,会把所有网页里面的东西全部转到EXCEL里面,包括那你按纽!Top
4 楼witzgf2(java殉道者)回复于 2003-12-03 10:20:30 得分 5
注意 DataGrid1.RenderControl(hw)Top
5 楼fqcd555(love violet)回复于 2003-12-03 10:33:36 得分 0
楼上的都是用VB.NET,能用C#吗?Top
6 楼weilt(开往春天的地铁)回复于 2003-12-03 11:08:44 得分 0
DataGrid1.RenderControl(hw)
就是这一句有错,但是用try,catch过去了
第二种方法里的DataGrid直转时有错:
拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 拒绝访问。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
但是没有"安全选项“卡呀
Top
7 楼weilt(开往春天的地铁)回复于 2003-12-04 09:27:16 得分 0
OWC.SpreadsheetClass xlsheet=new OWC.SpreadsheetClass();
为什么这句话都通不过呢,报上面的错误Top
8 楼weilt(开往春天的地铁)回复于 2003-12-05 13:59:11 得分 0
我现中知道是怎么一回事了,但是要不转成Office XP的呢,他有三参数,
xlsheet.Export(string FileName,OWC10.SheetExportActionEnmu Action, OWC10.SheetExportFormatEnmu Format);
我不知道这第三个参数要怎么样写才对呢?Top
9 楼MuTongB(牧童)回复于 2003-12-05 14:08:04 得分 5
还有一个比较简单的方法就是用剪贴板,在脚本里面调用window得剪贴板,把你要转换的数据的表单内容以html格式放到剪贴板上,然后用脚本启动excel然后创建一个工作表,调用excel里的粘贴方法就可以了。
Top
10 楼weilt(开往春天的地铁)回复于 2003-12-05 17:10:03 得分 0
private void Button1_Click(object sender, System.EventArgs e)
{
string SQL,error;
OWC10.SpreadsheetClass xlsheet=new OWC10.SpreadsheetClass();
Meeting.Service1 srv=new Meeting.Service1();
DataSet ds=new DataSet();
int i,j;
SQL="Select * from Tb_User";
ds=srv.Query(SQL);
DataView source=new DataView(ds.Tables["Query"]);
i=source.Table.Columns.Count;
for(i=0;i<ds.Tables["Query"].Rows.Count;i++)
for(j=0;j<ds.Tables["Query"].Columns.Count;j++)
{
xlsheet.ActiveSheet.Cells[i+1,j+1]=ds.Tables["Query"].Rows[i][j].ToString();
}
try
{
xlsheet.Application.Export("Export.xls" ,OWC10.SheetExportActionEnum.ssExportActionNone,OWC10.SheetExportFormat.ssExportXMLSpreadsheet);
}
catch(System.Runtime.InteropServices.COMException E1)
{
error=E1.Message;
}
ds.Tables["Query"].Reset();
ds.Reset();
ds.Dispose();
srv.Dispose();
}
}
在执行最后一句会出错,try
{
xlsheet.Application.Export("Export.xls" ,OWC10.SheetExportActionEnum.ssExportActionNone,OWC10.SheetExportFormat.ssExportXMLSpreadsheet);
}
得到的错误信息为 "HRESULT 中的异常:0xE004002A。"
请问应该怎么解决呢?
Top




