142 lines
5.4 KiB
C#
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);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|