ASP.NET WebForm 导出 Excel

前端代码:SqlToExcel.aspx

<div>
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
            OnPageIndexChanging="GridView1_PageIndexChanging" AutoGenerateColumns="False" 
            EnableModelValidation="True">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="序号" />
                <asp:BoundField DataField="title" HeaderText="产品名称" />
                <asp:BoundField DataField="BarCode" HeaderText="条形码" />
                <asp:BoundField DataField="code" HeaderText="产品编号" />
                <asp:BoundField DataField="MarketPrice" HeaderText="市场价" />
                <asp:BoundField DataField="PerfectPrice" HeaderText="商城价" />
                <asp:BoundField DataField="SavePrice" HeaderText="三级分类" />
                <asp:BoundField DataField="WebconfigPic" HeaderText="品牌" />
                <asp:BoundField DataField="CompanyID" HeaderText="单位ID" />
                <asp:BoundField DataField="CompanyName" HeaderText="单位名称" />
            </Columns>
        </asp:GridView>
        <asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal"
            Width="185px">
            <asp:ListItem Selected="True">全部数据</asp:ListItem>
            <asp:ListItem>当前页</asp:ListItem>
        </asp:RadioButtonList>
        <br />
        <asp:Button ID="Button1" runat="server" Text="导出Excel" OnClick="Button1_Click" />
    </div>

SqlToExcel.aspx.cs代码

public partial class SqlToExcel : System.Web.UI.Page
    {
        private System.Data.DataTable dbt = new System.Data.DataTable("tableInfo");
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                DisplayList();
            }
        }

        //导出Excel数据事件
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (this.GridView1.Rows.Count > 0)
            {
                creatTable();
                DataTabletoExcel(dbt);
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('没有数据,无法导出……');</script>");
            }
        }

        public void DisplayList()
        {
            BLLProductNew bll = new BLLProductNew();
            GridView1.DataSource = bll.GetListToExcel();
            GridView1.DataBind();
        }

        //分页
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            DisplayList();
        }
        private void creatTable()
        {
            DataColumn dbcol = new DataColumn();
            dbcol.ColumnName = "序号";
            dbcol.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbcol);

            DataColumn dbper = new DataColumn();
            dbper.ColumnName = "商品名称";
            dbper.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbper);

            DataColumn dbBarCode = new DataColumn();
            dbBarCode.ColumnName = "条形码";
            dbBarCode.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbBarCode);
            
            DataColumn dbpwd = new DataColumn();
            dbpwd.ColumnName = "商品编号";
            dbpwd.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbpwd);

            DataColumn dbMarketPrice = new DataColumn();
            dbMarketPrice.ColumnName = "市场价";
            dbMarketPrice.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbMarketPrice);

            DataColumn dbpPrice = new DataColumn();
            dbpPrice.ColumnName = "商城价";
            dbpPrice.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbpPrice);

            DataColumn dbpC = new DataColumn();
            dbpC.ColumnName = "三级分类";
            dbpC.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbpC);

            DataColumn dbBrand = new DataColumn();
            dbBrand.ColumnName = "品牌";
            dbBrand.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbBrand);

            DataColumn dbpCompanyID = new DataColumn();
            dbpCompanyID.ColumnName = "单位ID";
            dbpCompanyID.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbpCompanyID);

            DataColumn dbpCompanyName = new DataColumn();
            dbpCompanyName.ColumnName = "单位名称";
            dbpCompanyName.DataType = Type.GetType("System.String");
            dbt.Columns.Add(dbpCompanyName);

            if (RadioButtonList1.Text == "当前页")
            {
                //导出数据库“当前页”数据
                this.GridView1.AllowPaging = true;
            }
            if (RadioButtonList1.Text == "全部数据")
            {
                //导出数据库“全部”数据
                this.GridView1.AllowPaging = false;
            }
            DisplayList();
            foreach (GridViewRow grv in GridView1.Rows)
            {
                DataRow dr = dbt.NewRow();
                dr["序号"] = grv.Cells[0].Text;
                dr["商品名称"] = grv.Cells[1].Text;
                dr["条形码"] = grv.Cells[2].Text;
                dr["商品编号"] = grv.Cells[3].Text;
                dr["市场价"] = grv.Cells[4].Text;
                dr["商城价"] = grv.Cells[5].Text;
                dr["三级分类"] = grv.Cells[6].Text;
                dr["品牌"] = grv.Cells[7].Text;
                dr["单位ID"] = grv.Cells[8].Text;
                dr["单位名称"] = grv.Cells[9].Text;
                dbt.Rows.Add(dr);

            }
            this.GridView1.AllowPaging = true;
            DisplayList();
        }

        public void DataTabletoExcel(System.Data.DataTable db)
        {
            string hour = DateTime.Now.Hour.ToString();
            string min = DateTime.Now.Minute.ToString();
            string sec = DateTime.Now.Second.ToString();

            string path = DateTime.Now.ToString("yyyyMMddhhmmss");
            //path += "aaaa";
            //string Info = "C:\\" + path + "统计.xls";

            string Info = HttpContext.Current.Server.MapPath("") + "/CreateExcel/" + path + "统计.xls";
            Microsoft.Office.Interop.Excel.Application ex = new Microsoft.Office.Interop.Excel.Application();
            ex.Visible = false;
            object ms = Type.Missing;
            Microsoft.Office.Interop.Excel.Workbook wk = ex.Workbooks.Add(ms);
            Microsoft.Office.Interop.Excel.Worksheet ws = wk.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet;
            //循环列名
            for (int i = 0; i < db.Columns.Count; i++)
            {
                ws.Cells[1, i + 1] = db.Columns[i].ColumnName;
            }
            //循环数据
            for (int i = 0; i < db.Rows.Count; i++)
            {
                for (int j = 0; j < db.Columns.Count; j++)
                {
                    ws.Cells[i + 2, j + 1] = db.Rows[i][j].ToString();
                }
            }
            wk.SaveAs(Info, ms, ms, ms, ms, ms, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, ms, ms, ms, ms, ms);
            ex.Quit();
         }
    }


dal层方法

 public List<ProductNewModel> GetListToExcel()
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("SELECT a.id as aid,a.title as atitle,a.BarCode as aBarCode,a.Code as aCode,a.MarketPrice as aMarketPrice,a.PerfectPrice as aPerfectPrice,a.CompanyName as aCompanyName,b.title as btitle,c.title as ctitle ");
            sql.Append("FROM WR_ProductNew as a ");
            sql.Append("LEFT JOIN WR_Brand as b ");
            sql.Append("ON a.brandid = b.id ");
            sql.Append("LEFT JOIN WR_Product_Category3 as c ");
            sql.Append("ON a.Category3ID = c.id ");
            sql.Append("ORDER BY a.id");
            DataSet ds = QueryDataSet(sql.ToString());
            List<ProductNewModel> list = new List<ProductNewModel>();
            ProductNewModel model;
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                model = new ProductNewModel();
                model.ID = DataConvert.ToInt32(ds.Tables[0].Rows[i]["aid"].ToString());
                model.Title = DataConvert.ToString(ds.Tables[0].Rows[i]["atitle"].ToString());
                model.BarCode = DataConvert.ToString(ds.Tables[0].Rows[i]["aBarCode"].ToString());
                model.Code = DataConvert.ToString(ds.Tables[0].Rows[i]["aCode"].ToString());
                model.MarketPrice = DataConvert.ToString(ds.Tables[0].Rows[i]["aMarketPrice"].ToString());
                model.PerfectPrice = DataConvert.ToString(ds.Tables[0].Rows[i]["aPerfectPrice"].ToString());
                model.CompanyName = DataConvert.ToString(ds.Tables[0].Rows[i]["acompanyName"].ToString());
                model.SavePrice = DataConvert.ToString(ds.Tables[0].Rows[i]["ctitle"].ToString());
                model.WebconfigPic = DataConvert.ToString(ds.Tables[0].Rows[i]["btitle"].ToString());
                list.Add(model);
            }
            return list;
        }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET WebForm 是一种用于构建动态网页的技术框架,可以通过使用它提供的控件和事件模型来开发各种功能丰富的网页应用程序。要实现审批流,可以按照以下步骤进行: 1. 数据库设计:首先,需要设计一个数据库来存储审批流相关的数据。可以创建一个“审批表(Approval)”来存储审批流的信息,例如审批ID、审批标题、申请人、审批状态等。 2. 创建页面:使用ASP.NET WebForm创建一个审批页面。可以通过使用ASP.NET控件,如GridView、Repeater等来展示审批列表或者审批详情。还可以通过Label、TextBox等控件来收集用户输入的审批意见。 3. 编写代码逻辑:在页面的代码文件中,可以编写逻辑来处理审批流。可以使用ASP.NET提供的事件模型,例如按钮的Click事件,来触发审批流的处理逻辑。例如,点击“通过”按钮后,可以更新数据库中的审批状态,并发送通知邮件给下一个审批人;点击“拒绝”按钮后,可以更新审批状态,并发送通知邮件给申请人。 4. 审批流控制:审批流通常是由多个环节构成的。可以使用ASP.NET WebForm中的页面导航控件(如MultiView)来控制审批流程的流转。可以通过编写代码来判断当前审批人是谁,根据审批人的决策来显示不同的页面视图。 5. 审批历史记录:审批流一般需要记录审批的历史记录。可以在数据库中创建一个“审批历史记录表(ApprovalHistory)”,用于存储每次审批的详细信息。可以在每次审批流程处理完成后,将相关信息记录到表中。 通过以上步骤,就可以在ASP.NET WebForm中实现一个基本的审批流。当然,具体的实现方式还取决于实际需求和业务流程,并可以根据具体情况进行定制和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值