1.使用ADO.NET访问Excel?
答:
首先代码如下。
//指定链接的数据源
string source = "F://XXX//XXX//showpic//showpic//商品销售.xls";
string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + source + ";extended properties='Excel 8.0;HDR=YES;IMEX=1;'";
//设定select语句
string query = "select * from [商品销售$]";
OleDbConnection oleConnection = new OleDbConnection(sConnectionString);
oleConnection.Open();
OleDbCommand oleCommand = new OleDbCommand(query,oleConnection);
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
DataSet ds = new DataSet();
//填充适配器中的数据集
oleAdapter.Fill(ds,"[商品销售$]");
//绑定GridView的数据源
GridView1.DataSource = ds;
GridView1.DataMember = "[商品销售$]";
//绑定数据源到GridView
if (!this.IsPostBack)
{
GridView1.DataBind();
}
if (!this.IsPostBack)
{
//清空下拉列表框
DropDownList1.Items.Clear();
//用数据库的数据设置下拉列表框中的选项
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
DropDownList1.Items.Add(ds.Tables[0].Columns[i].ToString());
}
//关闭数据连接
oleConnection.Close();
}
上面过程中有几个方面值得我们注意:
第一,注意链接数据源代码,
string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + source + ";extended properties='Excel 8.0;HDR=YES;IMEX=1;'";
其中,extended properties=Excel 8.0,而不是12.0 ,其次,如果读Excel出来的数据为空或者出错,则是因为没有添加HDR=YES;IMEX=1; 最后,如果你读出来的数据有“F1”“F2”等的说明,入伏哦想取消的话,就需要设置HDR参数为YES
二、数据处理
现在,我们来看看到底怎样具体对数据进行操作。
1、Select语句
Select语句是所有数据操作里面最常见最常用的,现在,我们首先看最简单的取得一个数据表(WorkSheet)的所有数据,假设这个数据表(WorkSheet)名为“First”,可以这样取得所有数据:SELECT * FROM [First$]。这里,我们要注意两点:一是数据表名必须用方括符;二是数据表名字一定要加一个“$”符号来表示这是一个数据表。我们还可以限制检索数据的范围,比如我们要检索A1到D20的所有数据,可以这样检索:SELECT * FROM [SampleSheet$A1:D20],这里,使用A1:D20来限制检索范围。如果数据表第一行已经定义数据列的名字,我们可以选择需要显示的数据列来检索:SELECT 姓名 FROM [First$A1:B2]。
我们在具体使用中一定要注意几点:(1)针对每一列数据,定义数据的名字或者类型;比如我们在人事表中,可以定义“姓名”、“性别”等列,当然,这里的定义就是设置列的第一行值为需要定义的值。(2)注意Excel数据结构和Access的不同;在处理数据的过程中严格区别两者的差异,不要将Access数据处理SQL语句直接移植来操作Excel。
2、Insert语句
Insert语句在Excel中可能使用起来比较麻烦,因为Excel中,怎样来区分每一列数据呢?Access中每列数据有数据段名,Excel中没有这一项设置。看看刚才我们使用的Select语句,我们用数据列的第一行作为数据列名来检索数据,现在,我们也用第一行来区分数据列,比如可以这样插入数据:INSERT INTO [first$] (姓名,性别,年龄) valueS ( '章三 ', '男 ', '23 ')。
3、Update语句
Update语句和Insert语句差不多,比如我们可以这样修改更新数据:UPDATE SampleSheet$ SET Age = '24 ' WHERE FirstName = 'John ' AND LastName = 'Albert '
4、建立数据表(WorkSheet)
和操作Access一样,我们直接听过代码来建立新的数据表:
CREATE TABLE NewSheet ( Position char(255), Department char(255), DeptEmail char(255))