代码如下:
private void btnChange_Click(object sender, EventArgs e)
{ if (txtFile.Text != "") { if (textBox1.Text != "") { string strname = textBox1.Text; string filePath = txtFile.Text; DataSet ds = LoadDataFromExcel(filePath, strname); bool isOk = ExcelToArray(ds.Tables[0]); if (isOk) { MessageBox.Show("修改成功"); } } else { MessageBox.Show("请选择 Excel的表名 ,亲"); } } else { MessageBox.Show("请选择 Excel ,亲"); } }#region 加载 excel
//加载 excel public static DataSet LoadDataFromExcel(string filePath,string strname) { try { string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"; OleDbConnection OleConn = new OleDbConnection(strConn); OleConn.Open(); String sql = "SELECT * FROM [Sheet2$]";// +strname;//可是更改Sheet名称,比如sheet2,等等 OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn); DataSet OleDsExcle = new DataSet(); //OleDaExcel.Fill(OleDsExcle, "Sheet1"); OleDaExcel.Fill(OleDsExcle); OleConn.Close(); return OleDsExcle; } catch (Exception err) { MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return null; } } #endregion #region 将 读取出的 excel 列保存 自定义数组 或字符串 public static bool ExcelToArray(System.Data.DataTable excelTable) { Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); try { List<string> listStr = new List<string>(); int rowCount = excelTable.Rows.Count; int colCount = excelTable.Columns.Count; if (rowCount > 0) { Dictionary<string, string> dics = new Dictionary<string, string>(); for (int i = 0; i < rowCount; i++) { string ReportDate = excelTable.Rows[i][0].ToString(); dics.Add("ProductID", ReportDate); string EnabledState = excelTable.Rows[i][1].ToString(); dics.Add("Title", EnabledState); try { UpdatePro(dics); dics.Clear(); } catch { } } } return true; } catch (Exception err) { MessageBox.Show("导出Excel出错!错误原因:" + err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } finally { } } #endregion public static bool UpdatePro(Dictionary<string,string> dics) { string sql = @" INSERT dbo.tb_linshi ( ProductID, Title ) VALUES ( @ProductID , @Title )"; SqlParameter[] param = new SqlParameter[]{ new SqlParameter("@ProductID",dics["ProductID"]), new SqlParameter("@Title",dics["Title"]) }; bool isOk = false; if (SqlHelper.ExecuteNonQuery(sql, param) > 0) { isOk = true; } return isOk; }