近日項目需要,所以研究了下Execl的導入導出
該項目因為從一個Execl的數據進行計算產生另一個Execl,所以我並沒有使用數據庫。 --ps:貌似Execl也是一種數據庫啦!囧~
首先,導入Execl到DataSet
導入我選擇了OLEDB連接方式
第一步 記著引用命名空間
System.Data.OleDb;
接下來連接Execl
代碼
try
{
//利用OleDbConnectionStringBuilder對象來構建連接字符串.
OleDbConnectionStringBuilder connectionStringBuilder = new OleDbConnectionStringBuilder();
connectionStringBuilder.DataSource = @"" + textBox1.Text; //textBox1.Text用戶選擇要導入的Execl文件路徑+文件名
connectionStringBuilder.Provider = "Microsoft.Jet.OLEDB.4.0";
connectionStringBuilder.Add("Extended Properties", "Excel 8.0");
using (OleDbConnection cn = new OleDbConnection(connectionStringBuilder.ConnectionString))
{
ds = new DataSet();
OleDbCommand omd = new OleDbCommand(string.Format("select * from [{0}]", comboBox1.Text), cn);
OleDbDataAdapter oda = new OleDbDataAdapter(omd);
oda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
}
catch (Exception)
{
MessageBox.Show("連接Excel發生異常,請檢查後台代碼!");
}
在項目中為了讓用戶選擇不同的Sheet表,所以就讀取Execl中的Sheet了。