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>