1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using System.IO;10 using NPOI.SS.UserModel;11 using NPOI.HSSF.UserModel;12 using System.Data.SqlClient;13 namespace NPOI 14 {15 public partial class CustomersForm : Form16 {17 public CustomersForm()18 {19 InitializeComponent();20 }21 private void btnData_Click(object sender, EventArgs e)22 {23 //创建文件流24 using (FileStream fs = File.OpenRead(@"F:\ASP\NPOIData\Customers.xls"))25 {26 //创建一个工作薄27 using (Workbook book = new HSSFWorkbook(fs))28 {29 //读取工作表30 using (Sheet sheet = book.GetSheetAt(0))31 {32 //构建Sql语句33 string sql = "insert into T_Customers (CC_CustomerName,CC_CellPhone,CC_Landline,CC_CarNum,CC_BracketNum,CC_BuyDate) values(@name,@phone,@landLine,@carNum,@bracketNum,@buyDate)";34 SqlParameter[] pms = { 35 new SqlParameter("@name",SqlDbType.NVarChar),36 new SqlParameter("@phone",SqlDbType.VarChar),37 new SqlParameter("@landLine",SqlDbType.VarChar),38 new SqlParameter("@carNum",SqlDbType.VarChar),39 new SqlParameter("@bracketNum",SqlDbType.VarChar),40 new SqlParameter("@buyDate",SqlDbType.DateTime),41 };42 //从索引为1的行开始读取数据43 for (int i = 1; i <= sheet.LastRowNum; i++)44 {45 Row row = sheet.GetRow(i);//获取当前行46 //获取当前行中的所有列47 for (int j = 0; j < row.LastCellNum; j++)48 {49 Cell cell = row.GetCell(j);//获取每个单元格50 //数据库中的null值在.net中是用DBNull.Value来表示的,不能直接写null51 //三元表达式:52 pms[j].Value = cell == null ? (object)DBNull.Value : cell.ToString();53 }54 //每循环一次向表中插入一行 55 SqlHelper.ExecuteNonQuery(sql, pms);56 }57 MessageBox.Show("数据插入成功!");58 }59 }60 }61 }62 }63 }