oledb excel java_C# 通过 oledb 操作Excel实例代码

public string GetConnectionString()

{

Dictionary props = new Dictionary();

// XLSX - Excel 2007, 2010, 2012, 2013

props["Provider"] = "Microsoft.ACE.OLEDB.12.0;";

props["Extended Properties"] = "Excel 12.0 XML";

props["Data Source"] = @"C:\tools\MyExcel.xlsx";

// XLS - Excel 2003 and Older

//props["Provider"] = "Microsoft.Jet.OLEDB.4.0";

//props["Extended Properties"] = "Excel 8.0";

//props["Data Source"] = "C:\\MyExcel.xls";

var sb = new StringBuilder();

foreach (KeyValuePair prop in props)

{

sb.Append(prop.Key);

sb.Append('=');

sb.Append(prop.Value);

sb.Append(';');

}

return sb.ToString();

}

public void WriteExcelFile()

{

string connectionString = GetConnectionString();

using (OleDbConnection conn = new OleDbConnection(connectionString))

{

conn.Open();

OleDbCommand cmd = new OleDbCommand();

cmd.Connection = conn;

cmd.CommandText = "CREATE TABLE [table1] (id INT, name VARCHAR, datecol DATE );";

cmd.ExecuteNonQuery();

cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(1,'AAAA','2014-01-01');";

cmd.ExecuteNonQuery();

cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(2, 'BBBB','2014-01-03');";

cmd.ExecuteNonQuery();

cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(3, 'CCCC','2014-01-03');";

cmd.ExecuteNonQuery();

cmd.CommandText = "UPDATE [table1] SET name = 'DDDD' WHERE id = 3;";

cmd.ExecuteNonQuery();

conn.Close();

}

}

public DataSet ReadExcelFile()

{

DataSet ds = new DataSet();

string connectionString = GetConnectionString();

using (OleDbConnection conn = new OleDbConnection(connectionString))

{

conn.Open();

OleDbCommand cmd = new OleDbCommand();

cmd.Connection = conn;

// Get all Sheets in Excel File

DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

// Loop through all Sheets to get data

foreach (DataRow dr in dtSheet.Rows)

{

string sheetName = dr["TABLE_NAME"].ToString();

if (!sheetName.EndsWith("$"))

continue;

// Get all rows from the Sheet

cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

DataTable dt = new DataTable();

dt.TableName = sheetName;

OleDbDataAdapter da = new OleDbDataAdapter(cmd);

da.Fill(dt);

ds.Tables.Add(dt);

}

cmd = null;

conn.Close();

}

return ds;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值