首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

用asp.net直接生成word excel,并且不下载,直接打开

2013-12-11 
用asp.net直接生成word excel,而且不下载,直接打开使用asp.net写这么一个功能通过asp.net生成一个word 或

用asp.net直接生成word excel,而且不下载,直接打开
使用asp.net写这么一个功能
通过asp.net生成一个word 或者 excel,并在写入想要加入的内容,要带格式的
然后不用下载,直接打开

求高手给一个比较详尽的例子
[解决办法]
找个控件接住~~
[解决办法]
能不能直接打开不是你控制得了的,要看客户端有没有安装相应的office软件,没有就会提示下载文件
[解决办法]
 我的可用的代码(生成excel报表)       
Dim xlBooks As Excel.Workbooks, xlBook As Excel.Workbook

        Dim xlSheet As Excel.Worksheet

        '  Dim rowIndex, colIndex As Integer

        Dim spath As String
               spath = Server.MapPath("./")
        spath = spath & "uploads\book1.xls"
        'missing2 = missing.Value

        xlApp.Visible = False
        ' xlBook = xlApp.Workbooks().Add

        xlApp.DisplayAlerts = False
        xlBooks = xlApp.Workbooks
        xlBooks.Open(spath)
        xlBook = xlBooks.Item(1)
        'xlBook = xlApp.Application.Workbooks.Open("rep1.xlt", missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
        xlSheet = xlBook.Worksheets("sheet1")
'处理数据 。。。。
  ds = Funlib.MyQueryUsesqlDataSet(ss, "temp")
            If ds.Tables("temp").Rows.Count > 0 Then
                xlApp.Cells(1, 3) = Tb.Text.Trim & "报表"
                xlApp.Cells(2, 3) = CStr(Funlib.getdate())
                xlApp.Cells(3, 2) = "等级"
                xlApp.Cells(3, 1) = "序号"
                xlApp.Cells(3, 3) = "名称"
                xlApp.Cells(3, 4) = "单位"
                xlApp.Cells(3, 5) = "人"
                xlApp.Cells(3, 6) = "得分"
                xlApp.Cells(3, 7) = "备注"
                For i = 0 To ds.Tables("temp").Rows.Count - 1
                    For j = 0 To ds.Tables("temp").Columns.Count - 1
                        xlApp.Cells(i + 4, j + 1) = ds.Tables(0).Rows(i)(j)
                    Next j
                Next i

  Else


                lblstatus.Text = "没有符合条件的数据!"
            End If
 Dim spath2 As String
        spath2 = Server.MapPath("./") & "uploads\book2.xls"

        ' 


        'RegisterClientScriptBlock("提示:", "<script language=javascript>alert('save file!')</script>")


        xlBook.SaveAs(spath2)
        ' xlBook.Save()
        ' xlBook.SaveAs(spath, Excel.XlFileFormat.xlExcel9795, , , , , Excel.XlSaveAsAccessMode.xlNoChange, , , , , )
        ' xlBook.SaveAs(spath, , , , , , Excel.XlSaveAsAccessMode.xlNoChange, , , , , )
        xlBook.Close()
        ' xlApp.Visible = True
        xlApp.Quit()
        xlApp = Nothing
        GC.Collect()


            Page.Response.Clear()
            Response.Expires = 0
            Response.Buffer = True
            Page.Response.AddHeader("Content-Type", "application/ms-excel")

            '  Page.Response.AddHeader("Content-Disposition", "inline;filename=" & fn)
            Page.Response.AddHeader("Content-Disposition", "attachment;filename=" & Server.UrlEncode(spath2))
            Page.Response.WriteFile(spath2)

            Page.Response.End()


[解决办法]
首先机器需要安装office 或者引用第三方无需要安装office的dll

 
需要安装office
Response.Clear();
Response.ClearContent();
Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
string strRealFile = System.Web.HttpUtility.UrlEncode("入库信息明细表_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls", System.Text.Encoding.UTF8);
strRealFile = strRealFile.Replace("+", " ");
Response.ContentType = "application/vnd.ms-excel; name="" + strRealFile + """;
Response.AppendHeader("Content-Disposition:", "attachment;filename="" + strRealFile + """);

Response.Write("<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">\r\n");

Response.Write("<head>\r\n");
Response.Write("<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r\n");
Response.Write("<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name></x:Name><x:WorksheetOptions><x:Selected/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->\r\n");
Response.Write("<div style='text-align:center;font-size:large;font-weight:bold'>入库信息明细表</div>\r\n");
Response.Write("</head>\r\n");
Response.Write("<body>\r\n");
//组成的数据 table表格都行。
Response.Write(hfExcelData.Value.Trim().Replace("<br><br>", ""));
Response.Write("</body>\r\n");
Response.Write("</html>\r\n");

热点排行