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");
http://msdn.microsoft.com/zh-cn/library/kxs7kbfe.aspx
方法二:
完整的分页例子
http://dotnet.aspx.cc/file/Excel-File-Data-Paging-In-ASP.NEt.aspx
方法三:代码
<%@ 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>