WPF入门到放弃(九)| 读取excel数据并写入sqlite数据库中(附免安装连接数据库工具)

2021-11-08 14:00:09 浏览数 (1)

WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。

来吧!一起学起来!

  1. WPF入门到放弃(一) | 安装与创建
  2. WPF入门到放弃(二) | 初识XAML
  3. WPF入门到放弃(三)| 制作串口调试助手
  4. WPF入门到放弃(四)| 给串口调试助手列表赋值(附调试软件)
  5. WPF入门到放弃(五)| 串口的读取与写入(程序&附串口调试精灵)
  6. WPF入门到放弃(六)| 画面优化与发布(附源程序)
  7. WPF入门到放弃(七)| 常用布局控件的用法
  8. WPF入门到放弃(八)| 常用的控件(二)

说明:

本文主要介绍WPF(Windows Presentation Foundation),是微软推出的一项基于windows操作系统、.NET平台的C/S客户端构建技术。

软件下载地址:

https://visualstudio.microsoft.com/zh-hans/vs/

这里使用的是Visual Studio 2019 社区版

提示:

文章附带资料下载地址的获取,

请关注“剑指工控“微信公众号后,

添加管理员,

加入剑指工控微信群后获取。

第9讲

读取excel数据并写入sqlite数据库中

本期主要实操讲解如何实现读取excel数据并写入到sqlite数据库中。

新建一个excel的窗口,

同时将StartupUri="test.xaml"改为StartupUri="Excel.xaml"。

  • ListBox显示数据,Button用于触发读取excel数据。前台代码如下,不在赘述。

新建一个excel,并做一些测试数据。

  • 先把excel的数据读取出来,显示在上一节刚介绍的ListBox上。
  • 安装NPOI库,在不安装office的时候也是可以读写的,速度很快。

读取excel数据主要使用:

  • using NPOI.HSSF.UserModel;
  • using NPOI.SS.UserModel;
  • using NPOI.XSSF.UserModel;

这三个名称空间

  • 使用文件流的方式读取excel,先添加using System.IO;
  • FileStream对象表示在磁盘或网络路径上指向文件的流。
  • FileStream(String, FileMode, FileAccess):使用指定的路径、创建模式和读/写权限初始化 FileStream 类的新实例。
  • @"C:UserscylDesktopstudent.xlsx"指定文件名。
  • FileMode.Open 打开现有的文件,流指向文件的开头
  • FileAccess.Read 打开文件,用于只读
  • var wk = new HSSFWorkbook(fs); 把文件中的数据写入wk中
  • ISheet st = wk.GetSheetAt(0);读取第一个sheet数据
  • 读取0行的数据并显示在ListBox上:
代码语言:javascript复制
for (int i = 0; i < 3; i  )
            {
                listbox.Items.Add(st.GetRow(0).GetCell(i).StringCellValue);
            }
  • 运行时显示报错,原来是HSSF使用于2007之前的xls版本,XSSF适用于2007及其之后的xlsx版本。
  • HSSFWorkbook(fs)改为XSSFWorkbook(fs);则正常。

下面读取第二行的数据

st.GetRow(0)改为st.GetRow(1)。

  • 原来Excel数据age是个数字类型,把一个数字类型读取出一个字符串会报错。可以将数据直接转换成string。
  • listbox.Items.Add(st.GetRow(1).GetCell(i).StringCellValue 改为 listbox.Items.Add(st.GetRow(1).GetCell(i).ToString());
  • 新建一个文本文档,将名称改为:student.db
  • 使用Database4.exe 免安装连接数据库工具(入群后,找群管理员!)
  • 选择我们新建的一个student数据库。
  • 创建一个表
  • 创建一个表包含name、age、sex三个字段。
  • 点击保存,并给表取个student1名字
  • 查询表数据,目前是空数据

下面将excel数据写入到sqlite数据库中需要安装System.Data.sqlite

  • 使用List泛型集合来转存excel数据,将来保存sql语句会简单点。
  • string dbPath ="Data Source=" @"C:UserscylDesktopstudent.db"; 连接的字符串
  • SQLiteConnection con = new SQLiteConnection(dbPath); 建立一个连接
  • con.Open();打开连接
  • string sql = ""; sql = "insert into student1 values ('" mList[0] "','" mList[1] "','" mList[2] "') "; 初始化sql语句,并插入数据。
  • SQLiteCommand command = new SQLiteCommand(sql, con); 新建sql命令
  • command.ExecuteNonQuery();执行sql命令
  • con.Close();关闭连接

执行效果:

下期主要实现将sqlite数据读取写入到excel中以及将连接数据库语句进行封装以方便多次使用时的复用功能。

0 人点赞