Files
Ramitta-lib/template/device.cs
2025-11-11 16:51:37 +08:00

142 lines
5.4 KiB
C#

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<string, string> {
{ "料号", "TEXT" },
{ "名称", "TEXT" },
{ "数量", "TEXT" },
{ "备注", "TEXT" },
{ "标志", "TEXT" } });
foreach (var fileson in listson)
{
var form = ReadExcelAsDictRow(
$"{basic}{file}\\{fileson}.xlsx",
headerInit: new List<string> { "料号", "名称", "数量", "标志", "备注" });
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<string, object>();
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);
}
}
}
}
}
}