public
string
GetConnectionString()
{
Dictionary<
string
,
string
> props =
new
Dictionary<
string
,
string
>();
props[
"Provider"
] =
"Microsoft.ACE.OLEDB.12.0;"
;
props[
"Extended Properties"
] =
"Excel 12.0 XML"
;
props[
"Data Source"
] =
@"C:\tools\MyExcel.xlsx"
;
var
sb =
new
StringBuilder();
foreach
(KeyValuePair<
string
,
string
> 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;
DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
null
);
foreach
(DataRow dr
in
dtSheet.Rows)
{
string
sheetName = dr[
"TABLE_NAME"
].ToString();
if
(!sheetName.EndsWith(
"$"
))
continue
;
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;
}