首先新建一个WPF的项目,名为ExcelToServerDemo

Excel批量插入的SQL Server-LMLPHP

到Nuget去安装NPOI的Nuget包,点击安装即可,会自动引用项目。

Excel批量插入的SQL Server-LMLPHP

新建一个Student的表格,有名字,年龄,性别,地址,以及民族,以及出生日期

Excel批量插入的SQL Server-LMLPHP

查看Sudent 表格的数据为空

Excel批量插入的SQL Server-LMLPHP

新建个Excel表格数据如下,这里的表头我用了英文,不影响。

Excel批量插入的SQL Server-LMLPHP

再来设计一下WPF的界面,我们就用一个按钮和一个按钮事件处理就好了,如下图

Excel批量插入的SQL Server-LMLPHP

后台代码如下

Excel批量插入的SQL Server-LMLPHP

            var datatble = new DataTable();
var connectionsting = "Server=DESKTOP-GBT0AFP;Initial Catalog=Lexan;Integrated Security=SSPI;";
var sqldataadapter = new SqlDataAdapter("select * from Student", connectionsting);
var sqlbulkcopy = new SqlBulkCopy(connectionsting) { DestinationTableName = "Student" };
sqldataadapter.FillSchema(datatble, SchemaType.Source);
var xssfworkbook = new XSSFWorkbook(File.OpenRead(@"C:\Users\News\Desktop\Student.xlsx"));
var sheetrow= xssfworkbook.GetSheetAt();
for (int i = ; i < sheetrow.LastRowNum; i++)
{
var tablenewrow = datatble.NewRow();
var temprow = sheetrow.GetRow(i);
tablenewrow[] = temprow.Cells[].StringCellValue;
tablenewrow[] = temprow.Cells[].NumericCellValue;
tablenewrow[] = temprow.Cells[].StringCellValue;
tablenewrow[] = temprow.Cells[].StringCellValue;
tablenewrow[] = temprow.Cells[].StringCellValue;
tablenewrow[] = temprow.Cells[].DateCellValue;
datatble.Rows.Add(tablenewrow);
}
sqlbulkcopy.WriteToServer(datatble);
MessageBox.Show("写入完成!");

然后运行一下

Excel批量插入的SQL Server-LMLPHP

再来查看一下数据库

Excel批量插入的SQL Server-LMLPHP

感谢观看。

05-26 21:51