当前位置:编程学习 > C#/ASP.NET >>

asp.net怎么从数据库导出数据到客户端的excel里!

答案:function method2(tableid) //读取表格中每个单元到EXCEL中 { var curTbl = document.getElementById(tableid); try { var oXL = new ActiveXObject("Excel.Application"); } catch(e) { alert( "您必须安装Excel2000或以上,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。请选择Internet设置--安全选项--本地Intranet--改区域的安全级别设置为低,才能导出到Excel!"); window.location.reload(); return ""; } //创建AX对象excel var oWB = oXL.Workbooks.Add(); //获取workbook对象 var oSheet = oWB.ActiveSheet; //激活当前sheet var Lenr = curTbl.rows.length; //取得表格行数 for (i = 0; i < Lenr; i++) { var Lenc = curTbl.rows(i).cells.length; //<!--设置显示字符而不是数字--> oSheet.Columns(6).NumberFormatLocal="@" oSheet.Columns(5).NumberFormatLocal="@"; oSheet.Columns(8).NumberFormatLocal="@"; //取得每行的列数 for (j = 0; j < Lenc; j++) { oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; //赋值 } } oXL.Selection.HorizontalAlignment = -4108; //'xlHAlignCenter 横向居中 oXL.Range("a1:b1:c1:d1:f1:g1:h1:i1:j1:k1").MergeCells = true;//合并 //oXL.Range("a1:b1").select;//选中 //oXL.Selection.VerticalAlignment = -4108; //'xlVAlignCenter 竖向居中 oSheet.Columns.AutoFit; //自动适应大小 //设置excel可见属性 oXL.Visible = true; oXL.UserControl = true; //excel交由用户控制 } 简单的方法: function saveToExcel() { var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var oSheet = oWB.ActiveSheet; var sel=document.body.createTextRange(); sel.moveToElementText(tableId); sel.select(); sel.execCommand("Copy"); oSheet.Paste(); oXL.Visible = true; }
其他:/// <summary>
    /// 导出Excel
    /// </summary>
    /// <param name="dt">要导出的DataTable</param>
    public void ExportToExcel(System.Data.DataTable dt)
    {
        if (dt == null) return;
        Excel.Application xlApp = new Excel.Application();
        if (xlApp == null)
        {
            Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>alert('无法创建Excel对象,可能您的机子未安装Excel!')</script>");

            return;
        }
        Excel.Workbooks workbooks = xlApp.Workbooks;
        Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
        Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
        worksheet.Name = "企业信息";
        Excel.Range range = null;
        long totalCount = dt.Rows.Count;
        long rowRead = 0;
        float percent = 0;
        //写入标题
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
            range = (Excel.Range)worksheet.Cells[1, i + 1];
            //range.Interior.ColorIndex = 15;//背景颜色
            range.Font.Bold = true;//粗体
            range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//居中
            //加边框
            range.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThin, Excel.XlColorIndex.xlColorIndexAutomatic, null);
            //range.ColumnWidth = 4.63;//设置列宽
            range.EntireColumn.AutoFit();//自动调整列宽
            //r1.EntireRow.AutoFit();//自动调整行高
        }
        //写入内容
        for (int r = 0; r < dt.Rows.Count; r++)
        {
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i];
                range = (Excel.Range)worksheet.Cells[r + 2, i + 1];
                range.Font.Size = 9;//字体大小
                //加边框
                range.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThin, Excel.XlColorIndex.xlColorIndexAutomatic, null);
                range.EntireColumn.AutoFit();//自动调整列宽
            }
            rowRead++;
            percent = ((float)(100 * rowRead)) / totalCount;
        }
        range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight = Excel.XlBorderWeight.xlThin;
        if (dt.Columns.Count > 1)
        {
            range.Borders[Excel.XlBordersIndex.xlInsideVertical].Weight = Excel.XlBorderWeight.xlThin;
        }
        try
        {
            workbook.Saved = false;
            //workbook.SaveAs(Server.MapPath("Excels/1.xls"), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
            //xlApp.Save(Server.MapPath("~/Manager/Excels/") + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
            workbook.SaveCopyAs(System.Web.HttpRuntime.AppDomainAppPath + "Manager\\Excels\\" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
        }
        catch (Exception ex)
        {
            Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>alert('导出文件时出错,文件可能正被打开" + ex.Message + "!')</script>");
        }
        xlApp.Quit();
        GC.Collect();//强行销毁
        this.txt_hidden.Value = "";
        //Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>alert('Excel!导出成功')</script>");

    }  这个是我用来导出的代码 你看看 是不是你想要的效果 最简单的方式是建立一个txt文件,打开后,写入字段标题,然后一行行的写入,最后关闭文件。
查询数据库你看微软的例子。 推荐使用一个第三方组件, NPOI,非常方便。 问题没解决的话,请加QQ 304225775,我前段时间,也为这个在想办法 ,现在已经解决了! 

上一个:在网上下了一个sql文件想把它转换成excel 怎样转换???
下一个:java导入excel的思路,就是执行过程,运行顺序什么的。我现在导入了excel,在数据库里新建个表保存,

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,