C#excel 文件上传并进行分页

这里写图片描述

这里写图片描述

        private int Inum = 1;  //行号,规定其索引初始值为1
        int pagesize = 2;//每页的数据条数
        int pagecount = 0;//共有几页
        string file = "";
        int allCount = 0;//共有几条
        DataTable dw = new DataTable();

        private void view_bt_Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            fileDialog.Multiselect = true;
            fileDialog.Title = "请选择文件";
            fileDialog.Filter = "所有文件(*.*)|*.*";//判断文件类型
            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                file = fileDialog.FileName;
                //MessageBox.Show("已选择文件:" + file, "选择文件提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (MessageBoxButtons.OK.ToString().Equals("OK"))
            {
                filePath_text.Text = file;
            }

            ReadFromExcelFileService readFromExcelFileService = new ReadFromExcelFileService();
            dw = readFromExcelFileService.GetData(file);//调用GetData方发写上Excel文件所在的路径,这样就能获取到Excel表里面的数据了然后我们用个集合把读取到数据添加进去


            show(1, pagesize);

        }

        private void UploadDelivery_Load(object sender, EventArgs e)
        {

        }


        public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)//PageIndex表示第几页,PageSize表示每页的记录数
        {
            if (PageIndex == 0)
                return dt;//0页代表每页数据,直接返回

            DataTable newdt = dt.Copy();
            newdt.Clear();//copy dt的框架

            int rowbegin = (PageIndex - 1) * PageSize;
            int rowend = PageIndex * PageSize;

            if (rowbegin >= dt.Rows.Count)
                return newdt;//源数据记录数小于等于要显示的记录,直接返回dt

            if (rowend > dt.Rows.Count)
                rowend = dt.Rows.Count;
            for (int i = rowbegin; i <= rowend - 1; i++)
            {
                DataRow newdr = newdt.NewRow();
                DataRow dr = dt.Rows[i];
                foreach (DataColumn column in dt.Columns)
                {
                    newdr[column.ColumnName] = dr[column.ColumnName];
                }
                newdt.Rows.Add(newdr);
            }
            return newdt;
         }



        private void show(int start,int end)
        {

            allCount = dw.Rows.Count;    //获取数据表中记录的个数
            pagecount = allCount % pagesize;   //页数 = 总数/显示的行数

            int pageNo = 0;
            if (allCount % pagesize == 0)
            {
                pageNo = allCount / pagesize;
            }
            else
            {
                pageNo = allCount / pagesize + 1;
            }

            LB_showPage.Text = "共 " + pageNo + " 页" + "   当前第 " + start + " 页";

            //只能显示一页,判断是否是整除
            if (pagecount == 0)
            {
                pagecount = allCount / pagesize;
            }
            else
            {
                pagecount = allCount / pagesize + 1;
            }
            DataTable dt = GetPagedTable(dw, start, end);

            List<ExpressBill> list = new List<ExpressBill>();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ExpressBill bill = new ExpressBill();
                bill.ExpressNum = dt.Rows[i][0].ToString();
                bill.SenderCity = dt.Rows[i][1].ToString();
                bill.Sender = dt.Rows[i][2].ToString();
                bill.SenderPhone = dt.Rows[i][3].ToString();
                bill.SenderAddress = dt.Rows[i][4].ToString();
                bill.RecipientCity = dt.Rows[i][5].ToString();
                bill.Recipient = dt.Rows[i][6].ToString();
                bill.RecipientPhone = dt.Rows[i][7].ToString();
                list.Add(bill);     //这里就把读取的数据添加到集合了
            }


            dataGridView.DataSource = list;
            // 隐藏数据列 以及重命名 列名
            for (int n = 0; n < dataGridView.ColumnCount; n++)
            {
                if (dataGridView.Columns[n].DataPropertyName.Equals("BillId"))
                {
                    dataGridView.Columns[n].Visible = false;
                    dataGridView.Columns[n].HeaderText = "面单号主键";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("ExpressNum"))
                {
                    dataGridView.Columns[n].HeaderText = "单号";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("SenderCity"))
                {
                    dataGridView.Columns[n].HeaderText = "寄件城市";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("Sender"))
                {
                    dataGridView.Columns[n].HeaderText = "寄件人";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("SenderPhone"))
                {
                    dataGridView.Columns[n].HeaderText = "寄件手机";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("SenderAddress"))
                {
                    dataGridView.Columns[n].HeaderText = "寄件地址";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("RecipientCity"))
                {
                    dataGridView.Columns[n].HeaderText = "收件城市";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("Recipient"))
                {
                    dataGridView.Columns[n].HeaderText = "收件人";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("RecipientAddress"))
                {
                    dataGridView.Columns[n].HeaderText = "收件人地址";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("RecipientPhone"))
                {
                    dataGridView.Columns[n].HeaderText = "收件电话";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("TemplateId"))
                {
                    dataGridView.Columns[n].HeaderText = "模板主键";
                    dataGridView.Columns[n].Visible = false;
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("CollectPoint"))
                {
                    dataGridView.Columns[n].HeaderText = "揽件点";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("Collecter"))
                {
                    dataGridView.Columns[n].HeaderText = "揽件人";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("CollecterPhone"))
                {
                    dataGridView.Columns[n].HeaderText = "揽件人手机";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("CollectTime"))
                {
                    dataGridView.Columns[n].HeaderText = "揽件时间";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("PackageName"))
                {
                    dataGridView.Columns[n].HeaderText = "包裹品名";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("PackageWeight"))
                {
                    dataGridView.Columns[n].HeaderText = "包裹重量";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("FileName"))
                {
                    dataGridView.Columns[n].HeaderText = "文件名";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("UserId"))
                {
                    dataGridView.Columns[n].HeaderText = "用户主键";
                    dataGridView.Columns[n].Visible = false;
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("ExpressPoint"))
                {
                    dataGridView.Columns[n].HeaderText = "快递网点";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("ExpressCompany"))
                {
                    dataGridView.Columns[n].HeaderText = "快递公司";
                }
                else if (dataGridView.Columns[n].DataPropertyName.Equals("OperateTime"))
                {
                    dataGridView.Columns[n].HeaderText = "操作时间";
                }
            }

        } 

        private void LLB_First_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Inum = 1;
            show(Inum, pagesize);
        }

        private void LLB_Last_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Inum = pagecount;
            show(Inum, pagesize);
        }

        private void LLB_Next_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Inum++;
            if (Inum <= pagecount)              //如果没有超出记录行数
            {
                show(Inum, pagesize);
            }
            else
            {
                MessageBox.Show("现已是最后一页记录");
                Inum = pagecount; //更改为 Inum = pagecount;
                return;
            }
        }

        private void LLB_Previous_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Inum--;
            if (Inum > 0)                     //如果当前不是首记录
            {
                show(Inum, pagesize);                 //显示上一页记录
            }
            else
            {
                MessageBox.Show("现已是第一页记录");
                Inum = 1;
                return;
            }
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值