用GridView导入导出Excel,并打印GridView
2008-08-27 09:40
465 查看
1、Excel数据导入到数据库中:
在页面放置1个按钮控件(Button1)和1个文件上传控件(FileUpload1)
protected void Page_Load(object sender, EventArgs e)
{
GridView1.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
if (FileUpload1.PostedFile.FileName != "")
{
string filepath = FileUpload1.PostedFile.FileName;
string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
string sheetname = "Sheet1";
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "$]", conn);
DataSet ds = new DataSet();
oada.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
GridView1.Visible = true;
}
}
catch (Exception error)
{
this.Label1.Text = "上传发生错误!原因:" + error.ToString();
}
}
注意把Excel文件属性中加入ASPNET用户权限,不然不能导入
3、将数据库中的数据导入Excel中,在这里我讲叙自己实践中的两个方法:
方法一:从最基本的写文件入手,将从数据库中读出来的数据写入到Excel中;
//该方法实现将数据导入到Excel文件中,其中的DataTable dt就是你需要将数据写入到Excel中的数据;
public void ExportExcel( DataTable dt , StreamWriter w )
...{
try
...{
for( int i = 0 ; i < dt.Columns.Count ; i ++ )
...{
w.Write ( dt.Columns[i] );
w.Write( ' ' );
}
w.Write ( " " );
object[] values = new object [dt.Columns.Count];
foreach ( DataRow dr in dt.Rows )
...{
values = dr.ItemArray ;
for ( int i = 0 ; i < dt.Columns.Count ; i++ )
...{
w.Write ( values[i] );
w.Write ( ' ' );
}
w.Write ( " " );
}
w.Flush();
w.Close();
}
catch
...{
w.Close();
}
}
StreamWriter w就是你自己创建的一个流,创建该数据流时,你需要自己指定需要将数据写入到那个文件,即指定文件路径,要实现下载的话,就可以简单的用Response.Redirect
( "指定需要被下载的文件路径" );
方法二:该方法实现的是将数据从DataGrid中导入到Excel中:
//filename为Excel的名字,ToExcelGrid就是数据源,在此为DataGrid数据源;
private void ExportExcelFromDataGrid( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
Response.AppendHeader("Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
Excel导出:
页面上放一个GridView控件,ID为GridView1,添加个导出按钮ID为Button2
protected void Button2_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
页面后台必须重写这两个方法,不然出现错误!
public override void VerifyRenderingInServerForm( Control control )
{
}
protected override void Render(HtmlTextWriter writer)
{
if (Page != null)
{
Page.VerifyRenderingInServerForm(this);
}
base.Render(writer);
}
将GridView打印出来,添加个打印按钮,ID为Button4
protected void Button4_Click(object sender, EventArgs e)
{
Response.Write("<script> window.print()</script>");
}
在页面放置1个按钮控件(Button1)和1个文件上传控件(FileUpload1)
protected void Page_Load(object sender, EventArgs e)
{
GridView1.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
if (FileUpload1.PostedFile.FileName != "")
{
string filepath = FileUpload1.PostedFile.FileName;
string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
string sheetname = "Sheet1";
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "$]", conn);
DataSet ds = new DataSet();
oada.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
GridView1.Visible = true;
}
}
catch (Exception error)
{
this.Label1.Text = "上传发生错误!原因:" + error.ToString();
}
}
注意把Excel文件属性中加入ASPNET用户权限,不然不能导入
3、将数据库中的数据导入Excel中,在这里我讲叙自己实践中的两个方法:
方法一:从最基本的写文件入手,将从数据库中读出来的数据写入到Excel中;
//该方法实现将数据导入到Excel文件中,其中的DataTable dt就是你需要将数据写入到Excel中的数据;
public void ExportExcel( DataTable dt , StreamWriter w )
...{
try
...{
for( int i = 0 ; i < dt.Columns.Count ; i ++ )
...{
w.Write ( dt.Columns[i] );
w.Write( ' ' );
}
w.Write ( " " );
object[] values = new object [dt.Columns.Count];
foreach ( DataRow dr in dt.Rows )
...{
values = dr.ItemArray ;
for ( int i = 0 ; i < dt.Columns.Count ; i++ )
...{
w.Write ( values[i] );
w.Write ( ' ' );
}
w.Write ( " " );
}
w.Flush();
w.Close();
}
catch
...{
w.Close();
}
}
StreamWriter w就是你自己创建的一个流,创建该数据流时,你需要自己指定需要将数据写入到那个文件,即指定文件路径,要实现下载的话,就可以简单的用Response.Redirect
( "指定需要被下载的文件路径" );
方法二:该方法实现的是将数据从DataGrid中导入到Excel中:
//filename为Excel的名字,ToExcelGrid就是数据源,在此为DataGrid数据源;
private void ExportExcelFromDataGrid( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
Response.AppendHeader("Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
Excel导出:
页面上放一个GridView控件,ID为GridView1,添加个导出按钮ID为Button2
protected void Button2_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
页面后台必须重写这两个方法,不然出现错误!
public override void VerifyRenderingInServerForm( Control control )
{
}
protected override void Render(HtmlTextWriter writer)
{
if (Page != null)
{
Page.VerifyRenderingInServerForm(this);
}
base.Render(writer);
}
将GridView打印出来,添加个打印按钮,ID为Button4
protected void Button4_Click(object sender, EventArgs e)
{
Response.Write("<script> window.print()</script>");
}
相关文章推荐
- 实现GridView中的数据的打印和导出到Excel
- gridView导出数据到Excel...Excel导入数据到GridView
- Excel,GridView导入导出
- 从excel导入数据到数据库中和gridview导出数据到excel中
- GridView导出为Excel后,导出的.xls文件无法作为源文件导入的问题
- [导入]ASP.NET 2.0中将 GridView 导出到 Excel 文件中
- GridView打印和导出excel
- ASP.NET GridView导出Excel 打印预览换行显示不全
- GridView与Excel数据导入导出
- 把GridView导入Excel,把GridView打印出来!
- 实现GridView中的数据的打印和导出到Excel
- 使用GridView将数据导入或导出Excel中
- 使用GridView将数据导入或导出Excel中
- C#WinFrom DEV控件Gridview导入导出Excel
- [导入]Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 巧用DevExpress GridView导入导出Excel
- 如何导入excel数据到SQL server数据库 & 如何导出GridView数据至Excel
- Execl表格中的数据导入到GridView控件中并导出打印
- Web页面打印及GridView导出到Excel
- DevExpress GridView导入导出Excel