博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分页显示Excel数据
阅读量:4952 次
发布时间:2019-06-11

本文共 3869 字,大约阅读时间需要 12 分钟。

          string filename = "", filesize, filetype;

            get.filenames = filename;
           
//string tablename = "导入发货信息格式";
HttpFileCollection hfc = Request.Files;
            HttpPostedFile hpf
= hfc[0];
            filename
= Path.GetFileName(hpf.FileName);
            filesize
= hpf.ContentLength.ToString();
            filetype
= hpf.ContentType;
           
//Response.Write(filetype);
            if (filename.IndexOf(".xls") > -1)
            {
                hpf.SaveAs(Server.MapPath(
"uplode/") + filename);
               
//Response.Write(filename + "<BR>" + filesize + "<BR>" + filetype);
               
//RegisterStartupScript("dd", "<script>alert('上传成功!!')</script>");
               
//读取上传的数据表格在页面上显示出来
                string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("uplode" + "\\" + filename) + "; Extended Properties=Excel 8.0;";
                OleDbConnection con
= new OleDbConnection(strCon);
                con.Open();
               
//获好表格默认第一个表名
                DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
               
string tableNamess = dt.Rows[0][2].ToString().Trim();
                OleDbDataAdapter sdr
= new OleDbDataAdapter("select * from [" + tableNamess + "]", con);
                DataSet ds
= new DataSet();
                sdr.Fill(ds);
                GridView1.DataSource
= ds.Tables[0];
                GridView1.DataBind();
                con.Close();
                ds.Dispose();
                sdr.Dispose();
用的GridView控件显示数据,如果数据太多的话,存在分页问题。

一下是别人介绍的方法:具体可行没试过

方法1:

你可以自定义分页

采用这个方法
myAdapter.Fill(ds, startRecord, PageItem, "Paging");

方法二:

完整的分页例子

 

方法三:代码

<%@ Page Language="C#" %>

 
  <%@ Import Namespace="System.Data" %>
  <%@ Import Namespace="System.Data.OleDb" %>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <script runat="server">
 
  protected void Page_Load(object sender, EventArgs e)
  {
    string xlsConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Book1.xls") + ";Extended Properties='Excel 8.0;HDR=No;'";
    OleDbConnection cn = new OleDbConnection(xlsConnStr);
    cn.Open();
    String sql = "select Count(*) From [Sheet1$]";
    OleDbCommand cmd = new OleDbCommand(sql, cn);
 
    // 总的记录数
    int TotalCount = Convert.ToInt32(cmd.ExecuteScalar());
 
    //当前页的序号
    int PageIndex = 1;
    String page = Request.QueryString["Page"];
    if (page == null) page = "1";
    Int32.TryParse(page, out PageIndex);
    if (PageIndex  < 1) PageIndex = 1;
 
    //每页显示的数量
    int PageItem = 5;
    int startRecord = (PageIndex - 1) * PageItem;
 
    sql = "Select * From [Sheet1$]";
    OleDbDataAdapter da = new OleDbDataAdapter(sql, cn);
    DataSet ds = new DataSet();
    da.Fill(ds, startRecord, PageItem, "Sheet");
 
    GridView1.DataSource = ds.Tables[0].DefaultView;
    GridView1.DataBind();
 
    BuildPagers(TotalCount, PageIndex, PageItem);
  }
 
  private void BuildPagers(int TotalCountRecord, int CurrentPage, int PageItem)
  {
    int Step = 6;
    int LeftNum = 0;
    int RightNum = 0;
    String PageUrl = "?";
    int PageCount = (int)Math.Ceiling((double)(TotalCountRecord) / PageItem);
    if (CurrentPage - Step  < 1)
    {
      LeftNum = 1;
    }
    else
    {
      LeftNum = CurrentPage - Step;
    }
 
    if (CurrentPage + Step > PageCount)
    {
      RightNum = PageCount;
    }
    else
    {
      RightNum = CurrentPage + Step;
    }
    string OutPut = "";
    for (int i = LeftNum; i  <= RightNum; i++)
    {
      if (i == CurrentPage)
      {
        OutPut += " <span style='color:red'>" + i.ToString() + " </span> ";
      }
      else
      {
        OutPut += " <a href=\"" + PageUrl + "Page=" + i.ToString() + "\">" + i.ToString() + " </a> ";
      }
    }
    if (CurrentPage > 1)
    {
      OutPut = " <a href='" + PageUrl + "Page=1'>首页 </a>   <a href=\"" + PageUrl + "Page=" + (CurrentPage - 1) + "\">上一页 </a> " + OutPut;
    }
 
    if (CurrentPage  < PageCount)
    {
      OutPut += "  <a href=\"" + PageUrl + "Page=" + (CurrentPage + 1) + "\">下一页 </a>  <a href='" + PageUrl + "Page=" + PageCount + "'>末页 </a>";
    }
    Pager.InnerHtml = OutPut ;
  }
  </script>
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
   <title>孟宪会的Excel分页测试 </title>
  </head>
  <body>
   <form id="form1" runat="server">
   <asp:GridView ID="GridView1" runat="server" ShowHeader="false">
   </asp:GridView>
   <div id="Pager" runat="server"> </div>
   </form>
  </body>
  </html>

转载于:https://www.cnblogs.com/caster/archive/2011/09/25/2190027.html

你可能感兴趣的文章
[luogu4201][bzoj1063]设计路线【树形DP】
查看>>
手机抓包-手机劫持域名到指定服务器
查看>>
被放逐的皇后 金建云
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
网页抓取 总结
查看>>
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>
硬件之美
查看>>
[转载]java开发中的23种设计模式
查看>>
表格的拖拽功能
查看>>
函数的形参和实参
查看>>
文字过长 用 ... 表示 CSS实现单行、多行文本溢出显示省略号
查看>>
1Caesar加密
查看>>
【TP SRM 703 div2 500】 GCDGraph
查看>>
MapReduce 重要组件——Recordreader组件 [转]
查看>>
webdriver api
查看>>
转载-FileZilla Server源码分析(1)
查看>>