更新标准库UDP等

This commit is contained in:
2025-11-11 16:51:37 +08:00
parent 2ebbad09bc
commit bf464b04a6
9 changed files with 479 additions and 607 deletions

View File

@@ -30,164 +30,77 @@ using System.Windows.Shapes;
using System.Windows.Threading;
using System.Xml.Linq;
using static Ramitta.Excel;
using static Ramitta.lib.SerialPortHandler;
using static Ramitta.lib.Excel;
using static Ramitta.lib.Basic;
using static Ramitta.lib.CryptoHelper;
using static Ramitta.SQLite;
using static Ramitta.winDataGrid;
namespace template
{
public partial class MainWindow : Window
{
public class XlsxRows
{
public string { get; set; }
public string { get; set; }
public float { get; set; }
public List<string> { get; set; }
public string { get; set; }
}
static string? filePath;
#region MainWindow
public MainWindow(StartupEventArgs e)
{
Startupe = ParseCommandLineArgs(e.Args);
InitializeComponent();
if (Startupe.TryGetValue("getfile", out string filePath))
{
MainWindow.filePath = filePath;
DebugBar(Debugtag, $"操作目标:{filePath}", 绿);
}
else
{
DebugBar(Debugtag, $"未指定操作目标", );
}
}
#endregion
public static List<XlsxRows> EvaluateFormulaExample(string filePath, string? checkTitle = null)
private async void (object sender, RoutedEventArgs e)
{
string filename = @"C:\Users\XerolySkinner\Desktop\identifier.sqlite";
SQLite db = new SQLite($"Data Source={filename};Version=3;");
IWorkbook workbook;
// 1. 根据文件扩展名创建正确的 Workbook 实例
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
try
{
if (System.IO.Path.GetExtension(filePath).ToLower() == ".xlsx")
// 构建查询语句和参数
string query = "SELECT * FROM 屋檐屋面方管数 WHERE 型号 = \"M0\" AND 跨度 = 15";
// 执行查询
List<Dictionary<string, object>> results = db.SelectData(query);
// 处理查询结果
if (results != null && results.Count > 0)
{
workbook = new XSSFWorkbook(fs);
// 遍历所有行
foreach (var row in results)
{
// 遍历每行的所有列
foreach (var column in row)
{
Debug.WriteLine($"{column.Key}: {column.Value}");
}
Debug.WriteLine("---"); // 行分隔符
}
// 或者您可以根据需要处理数据,比如显示在界面上
// 例如dataGrid.ItemsSource = results;
}
else
{
workbook = new HSSFWorkbook(fs); // 用于 .xls
Debug.WriteLine("未找到记录");
}
}
// 2. 获取第一个工作表
ISheet sheet = workbook.GetSheetAt(0);
ISheet? sheetRelate = null;
if (workbook.NumberOfSheets > 1)
catch (Exception ex)
{
sheetRelate = workbook.GetSheetAt(1); // 获取第二个工作表
}
// 3. 公式表化
if (sheetRelate != null)
{
Dictionary<string, ICell> valueDictionary = new Dictionary<string, ICell>();
for (int i = 0; i <= sheetRelate.LastRowNum; i++)
{
IRow row = sheetRelate.GetRow(i);
if (row != null)
{
ICell keyCell = row.GetCell(0);
ICell valueCell = row.GetCell(1);
if (keyCell != null && valueCell != null)
{
string key = keyCell.ToString();
valueDictionary[key] = valueCell; // 存入字典
}
}
}
valueDictionary["单元数"]?.SetCellValue(50);
}
// 4. 遍历跳过行首
List<XlsxRows> result= new List<XlsxRows>();
for (int i = 1; i <= sheet.LastRowNum; i++) {
XlsxRows member = new();
member. = sheet.GetRow(i).GetCell(0)?.ToString() ?? "";
member. = sheet.GetRow(i).GetCell(1)?.ToString() ?? "";
member. = new();
member. = sheet.GetRow(i).GetCell(4)?.ToString() ?? "";
try {
member. = xlsxEvaluatorDouble(
workbook,
sheet.GetRow(i).GetCell(2));
result.Add(member);
}
catch {
member. = -1;
}
}
// 5. 关闭工作簿(如果不再需要)
workbook.Close();
return result;
}
public static float xlsxEvaluatorDouble(IWorkbook workbook,ICell cell) {
IFormulaEvaluator evaluator = workbook.GetCreationHelper().CreateFormulaEvaluator();
// 5. 判断单元格类型是否为公式
if (cell.CellType == CellType.Formula)
{
// 6. 计算公式并获取计算后的单元格值CellValue
CellValue evaluatedCellValue = evaluator.Evaluate(cell);
// 7. 根据计算结果的类型获取值
switch (evaluatedCellValue.CellType)
{
case CellType.Numeric:
float numericValue = (float)(evaluatedCellValue.NumberValue);
return numericValue;
break;
case CellType.String:
string stringValue = evaluatedCellValue.StringValue;
break;
case CellType.Boolean:
bool boolValue = evaluatedCellValue.BooleanValue;
break;
case CellType.Error:
// 处理错误值
Debug.WriteLine("公式计算错误");
break;
default:
Debug.WriteLine("未知类型的公式结果");
break;
}
}
else
{
return (float)cell.NumericCellValue;
}
throw new NotImplementedException("并非都是double返回值");
}
private async void (object sender, RoutedEventArgs e)
{
var ret=EvaluateFormulaExample(@"C:\Users\Xeroly\Desktop\newmagg.xlsx");
foreach (var cell in ret) {
Debug.WriteLine($"{cell.物号}->{cell.名称描述}:{cell.数量}");
// 处理异常
Debug.WriteLine($"查询失败: {ex.Message}");
}
}
private async void (object sender, RoutedEventArgs e)
{
var mkshit = GenerateKeyPair();
var privateKey = "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";
privateKey=privateKey.Replace("\r","");
privateKey = privateKey.Replace("\n", "");
string calculatedPublicKey = GetPublicKeyFromPrivate(privateKey);
}
private async void (object? sender = null, RoutedEventArgs? e=null)
@@ -202,7 +115,6 @@ namespace template
private void (object sender, RoutedEventArgs e)
{
}
private void (object sender, RoutedEventArgs e)