生成UWP包后,如何将Excel数据导入UWP SQLite数据库?
UWP中SQLite数据库定位、打开及Excel数据导入指南
一、SQLite数据库文件的位置
UWP应用受沙盒机制限制,默认创建的SQLite数据库文件存放在应用的本地状态文件夹中:
- 通过代码获取路径:在应用中使用
ApplicationData.Current.LocalFolder.Path可直接得到该文件夹的绝对路径,数据库文件(比如你代码中定义的MyDatabase.db)就位于此目录下。 - 手动查找路径:打开文件资源管理器,导航到
C:\Users\[你的Windows用户名]\AppData\Local\Packages\[应用包名]\LocalState。其中「应用包名」可在Visual Studio的Package.appxmanifest中查看,或在Windows设置→应用→应用和功能中找到你的应用,进入「高级选项」查看「安装位置」。
二、打开SQLite数据库文件
推荐使用轻量可视化工具操作,比如SQLite Studio或DB Browser for SQLite,步骤如下:
- 关闭正在运行的UWP应用(避免数据库文件被进程锁定)。
- 打开工具,选择「打开数据库」选项,导航到上述
LocalState文件夹,选中你的.db文件即可。
三、Excel数据导入SQLite的两种方法
方法1:通过代码批量导入(适合集成到应用中)
- 读取Excel数据:
- 推荐将Excel另存为CSV格式(避免复杂的Excel解析依赖),然后用
StreamReader读取CSV内容;若需直接解析Excel,可使用适配UWP的EPPlus库(选择支持.NET Standard的版本)。 - 若Excel文件是用户外部文件,需用
FileOpenPicker让用户选择文件,获取文件流后再解析。
- 推荐将Excel另存为CSV格式(避免复杂的Excel解析依赖),然后用
- 创建数据表结构:
确保SQLite中的表结构与Excel/CSV的列对应,比如执行SQL语句:CREATE TABLE IF NOT EXISTS Records ( Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT, Age INTEGER, Email TEXT ); - 批量插入数据:
使用Microsoft.Data.Sqlite提供的连接和命令对象,配合参数化查询提高效率和安全性:using (var connection = new SqliteConnection("Data Source=MyDatabase.db")) { connection.Open(); var transaction = connection.BeginTransaction(); var command = connection.CreateCommand(); command.CommandText = "INSERT INTO Records (Name, Age, Email) VALUES (@Name, @Age, @Email)"; // 遍历解析后的Excel数据行 foreach (var row in excelDataRows) { command.Parameters.Clear(); command.Parameters.AddWithValue("@Name", row.Name); command.Parameters.AddWithValue("@Age", row.Age); command.Parameters.AddWithValue("@Email", row.Email); command.ExecuteNonQuery(); } transaction.Commit(); }
方法2:通过可视化工具导入(适合一次性操作)
- 把Excel文件另存为UTF-8编码的CSV文件(避免中文乱码)。
- 在SQLite工具中打开目标数据库,创建与CSV列匹配的数据表(结构参考方法1的SQL语句)。
- 使用工具的「导入」功能(比如DB Browser for SQLite的「文件→导入→从CSV文件导入」),选择保存的CSV文件,映射CSV列到数据表的对应字段,确认后完成导入。
内容的提问来源于stack exchange,提问作者ari fariq
相关产品推荐
相关产品推荐

