Excel和DataTable互操作

来源:互联网 发布:大学圈子 知乎 编辑:程序博客网 时间:2024/05/22 07:08

1.asp.net 在同一页面定位

    作如下简单操作就行了

    <a name="#name1" href="#name2">name1</a>

    <a name="#name2" href="#name1">name2</a>

     在同一个页面内,将这两个标记尽量分开放在不同的地方,那么就可以实现在同一页面定位,或者可以说是跳转。

 

2.DataTable的一些用法:

生成DataTable”的作用就是在内在中创建一个DataTablle 然后使用Repeater显示

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的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。现在在其中添加一行内容


如果要将该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);    }


可以看到从Excel又读回数据并且自动绑定到Repeater上,我们增加的一行数据也正确显示了!
之所以可以正确绑定出来,是因为我们在导出的时候在Excel最上行添加了一行列名,所以可以对应绑定!
实际中更多的是数据库和Excel的互操作!本文讲到DataTable,从DataTable到数据库的转换也是容易的!
数据从Excel导入到DataTable后,我们可以通过编写少量代码即可将数据 添加或更新回数据库!这也是可以的!


0 0