using NPOI.XSSF.UserModel; using Ramitta; using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using static Ramitta.lib.Excel; using static Ramitta.lib.Basic; namespace template { public partial class MainWindow { public async void 数据升天计划sqlite() { string filename = @"C:\Users\Xeroly\Desktop\琦亚\Kia.db"; SQLite db = new SQLite($"Data Source={filename};Version=3;"); db.DropAllTables(); var basic = @"C:\Users\Xeroly\Desktop\组件库\"; var list = GetFilesAndDirectories(basic, true, null, outputFormat: dir => Path.GetFileNameWithoutExtension(dir)); foreach (var file in list) { var listson = GetFilesAndDirectories(basic + file, false, null, outputFormat: dir => Path.GetFileNameWithoutExtension(dir)); db.CreateTable(file, new Dictionary { { "料号", "TEXT" }, { "名称", "TEXT" }, { "数量", "TEXT" }, { "备注", "TEXT" }, { "标志", "TEXT" } }); foreach (var fileson in listson) { var form = ReadExcelAsDictRow( $"{basic}{file}\\{fileson}.xlsx", headerInit: new List { "料号", "名称", "数量", "标志", "备注" }); form.RemoveAt(0); db.AddColumn(file, "类型", "TEXT"); if ( file.Contains("边墙沉重管") || file.Contains("承重柱") || file.Contains("弧形拉伸杆") || file.Contains("山墙侧柱套件") || file.Contains("山墙沉重管") || file.Contains("屋脊连接角") || file.Contains("屋面方管") || file.Contains("屋檐方管") || file.Contains("斜梁") || file.Contains("右悬挂管") || file.Contains("左悬挂管")) { db.AddColumn(file, "型号", "TEXT"); } if (fileson.Contains("跨度")) { db.AddColumn(file, "跨度", "TEXT"); } if (fileson.Contains("高度")) { db.AddColumn(file, "高度", "TEXT"); } if (fileson.Contains("长度")) { db.AddColumn(file, "长度", "TEXT"); } if (fileson.Contains("宽度")) { db.AddColumn(file, "宽度", "TEXT"); } foreach (var formson in form) { var data = new Dictionary(); data.Add("料号", formson["料号"]); data.Add("名称", formson["名称"]); data.Add("数量", formson["数量"]); data.Add("备注", formson["备注"]); data.Add("标志", formson["标志"]); data.Add("类型", Regex.Match(fileson, @"([^-]+)").Groups[1].Value); if ( file.Contains("边墙沉重管") || file.Contains("承重柱") || file.Contains("弧形拉伸杆") || file.Contains("山墙侧柱套件") || file.Contains("山墙沉重管") || file.Contains("屋脊连接角") || file.Contains("屋面方管") || file.Contains("屋檐方管") || file.Contains("斜梁") || file.Contains("右悬挂管") || file.Contains("左悬挂管")) { data.Add("型号", Regex.Match(fileson, @"^(?:[^-]+-){2}([^-\r\n]+)").Groups[1].Value); } if (fileson.Contains("跨度")) { data.Add("跨度", Regex.Match(fileson, @"跨度(\d+)").Groups[1].Value); } if (fileson.Contains("高度")) { data.Add("高度", Regex.Match(fileson, @"高度(\d+)").Groups[1].Value); } if (fileson.Contains("长度")) { data.Add("长度", Regex.Match(fileson, @"长度(\d+)").Groups[1].Value); } if (fileson.Contains("宽度")) { data.Add("宽度", Regex.Match(fileson, @"宽度(\d+)").Groups[1].Value); } db.InsertData(file, data); } } } } } }