在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前几天朋友公司开发需要用到Excel的导入导出,需要通过Web将数据库中的内容与Excel互导!问到我,自己以前做过,网上很多类似的解决方案都是使用类似DataGrid或GridView这样的控件直接导入到Excel,方便,但不是很实用,有时候甚至导出的Excel并不是我们需要的格式!记得曾经听邵志东老师讲过ASP.NET下的自动化操作。但一时又没找到相关的代码。在这里我将自己的示例在这贴出,以方便有自己和以后有这方面需要的朋友查询!
protected void btnLoadDt_Click(object sender, EventArgs e)
{ BindData(LoadDataTable()); } //创建DataTable private DataTable LoadDataTable() { DataTable dt = new DataTable(); DataColumn dc = new DataColumn("userName"); dt.Columns.Add(dc); dc = new DataColumn("userSex"); dt.Columns.Add(dc); DataRow dr = dt.NewRow(); dr[0] = "fengyan"; dr[1] = "male"; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = "efly"; dr[1] = "male"; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = "楚旋"; dr[1] = "male"; dt.Rows.Add(dr); return dt; } 点击DataTablle导出Excel即可将该DataTable 内容导出到指定的Excel中。相关代码如下:
protected void btnExportExcel_Click(object sender, EventArgs e)
运行后打开生成的Excel如下:{ //得到需要导入Excel的DataTable DataTable dt = LoadDataTable(); //将其列名添加进去! (这一步注意是为了方便以后将该Excel导入内存表中 自动创建列名用。) DataRow dr = dt.NewRow(); dr[0] = "userName"; dr[1] = "userSex"; dt.Rows.InsertAt(dr, 0); //实例化一个Excel助手工具类 ExcelHelper ex = new ExcelHelper(); //导入所有!(从第一行第一列开始) ex.DataTableToExcel(dt, 1, 1); //导出Excel保存的路径! ex.OutputFilePath = txtExcelPath.Text; ex.OutputExcelFile(); } 已经将内容导出到Excel。现在在其中添加一行内容 如果要将该Excel再读取到DataTable中比较简单,可以使用ADO.NET Excel导入DataTable事件代码如下:
protected void btnExcelToDataTable_Click(object sender, EventArgs e)
{ string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtFromExcel.Text + ";Extended Properties=Excel 8.0"; //链接Excel OleDbConnection cnnxls = new OleDbConnection(strConn); //读取Excel里面有 表Sheet1 OleDbDataAdapter oda = new OleDbDataAdapter("select * from [Sheet1$]", cnnxls); DataSet ds = new DataSet(); //将Excel里面有表内容装载到内存表中! oda.Fill(ds); DataTable dt = ds.Tables[0]; BindData(dt); } 运行后页面如下: |
请发表评论