公司需要将一张Excel的数据导入到数据库,用于核查数据库的数据是否正确?常规来说,我们要先在Mysql数据库建一张表,然后前台写代码,生成Insert的Sql语句或基于ORM组件(如微软的EntityFramework)将数据插入至数据库。今天我们就不按常理出牌,只写一行代码,就把这事办了(是不是不信?其实不到10行)。先看下这个Excel文件(多表头格式),c#中如何把多表头格式数据导入成DataTable,请参考这篇博客。
1、生成Xml文件
我们将生成好的DataTable,保存成Xml文件,一句代码就可以搞定,如下。注:DataTable要设置TableName属性值,不然会报错。注意这个sheet结点,它表示一个行的标签,这个相当于行与行之间的分隔符,以这个Xml文件为例,就是sheet。
string xlsFile = @"D:\NorthC\99.Other\a运营工资报表\赛狐利润报表-订单-2023-04-01~2023-04-30-new.xlsx"; DataTable dtData = NS.Utility.Office.ExcelUtil.ImportDataTableByMultiTitle(xlsFile, "sheet", 1); dtData.TableName = "sheet"; string xmlFile = @"D:\NorthC\99.Other\a运营工资报表\赛狐利润报表-订单-2023-04-01~2023-04-30-new.xml"; dtData.WriteXml(xmlFile);
现在我们已经将Excel数据转换成Xml数据了,接下来就要借助工具实现导入Mysql了,工具选择的是Navicat for MySQL.
2、使用Navicat for MySQL工具
2.1、导入向导-1
选择一张表,打开。选择:导入向导,选择XML文件
2.2、导入向导-2
选择要导入的Xml文件
2.3、导入向导-3
这个就是上面提到的那个行分隔符,这里填:sheet,复选框不用勾
2.4、导入向导-4
默认即可,直接下一步
2.5、导入向导-5
继续下一步
2.6、导入向导-6
这里设置Db表栏目和Xml列的映射关系,我的Db表字段,直接建成了中文
2.7、导入向导-7
这里的数据的导入模式,选项都清楚。最简单的就是删除Db表中数据,选择第1个选项
2.8、导入向导-8
结果会显示到日志里,直接查看即可
相关阅读
文章评论