最近在做一个球员管理系统,在系统中添加球员信息时必须单个添加,所以考虑用execl表格的形式批量添加球员相关数据(execl内容形式要与数据库形式对应),且添加的过程中要实现重复球员信息过滤,也就是说,已经在数据库中存在的,就不再进行添加了。下面是实现的具体过程:
第一步:将execl表格内容存储在DataTable中
1、导入npoi数据包(百度下载添加引用即可)
2、添加using NPOI.SS.UserModel
3、新建execl文件,并输入要添加的内容
我在桌面新建了一个球员数据的execl文件,因为我的数据库是七列,所以文件的内容也是分为七列来输入的,分别是 姓名、号码、身高、体重、位置、总冠军个数、百度百科链接
4、选择要打开的文件
利用OpenFileDialog属性找到要导入的文件,利用fileName返回完整文件路径
OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Multiselect = true; fileDialog.Title = "请选择文件"; fileDialog.Filter = "所有文件(*xls*)|*.xls*"; //设置要选择的文件的类型 string fileName = ""; if (fileDialog.ShowDialog() == DialogResult.OK) { fileName = fileDialog.FileName;//返回文件的完整路径 }
5、读取文件内容,并保存在DataTable中
具体代码如下:
IWorkbook workbook = null; //新建IWorkbook对象 FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); if (fileName.IndexOf(".xls") > 0) // 2003版本 { workbook = new HSSFWorkbook(fileStream); //xls数据读入workbook } ISheet sheet = workbook.GetSheetAt(