当前位置: 首页 > web >正文

CoreShop微信小程序商城框架开启多租户-添加一个WPF客户端以便进行上传产品信息和图片(6)

前几天已将基于开源CoreShop框架的微信小程序开启多租户功能,还开发了一个辅助客户端,已经完成了以下工作:

  1. 修改管理员表格,添加上所管理的店铺列表,两个产品信息表也全部加上所属店铺信息。
  2. 开发一个WPF客户端,能与服务器登录并能正常通信。尤其是添加了一个辅助类CoreHelper。

接下来,我们将继续完善WPF客户端,

一、将windows客户调整一下,将登录信息上移

<Window x:Class="WpfApp2.WindowImportExcel"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="导入EXCEL" Height="820" Width="1600" FontSize="16"Loaded="Window_Loaded"><Grid Margin="20"><Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="*"/></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="Auto"/><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/><ColumnDefinition Width="780px"/></Grid.ColumnDefinitions><Label Grid.Row="0" Grid.Column="0" Content="管理后台网址:" VerticalAlignment="Center"/><TextBox Grid.Row="0" Grid.Column="1" x:Name="txtWebhost"  IsReadOnly="False" Margin="5"  Text="http://localhost:1987/"  /><Button Grid.Row="0" Grid.Column="2"  x:Name="btnLogin" Grid.RowSpan="2" Content="登录" Width="80" Margin="5" Click="BtnLogin_Click"/><!-- 用户密码--><Label Grid.Row="1" Grid.Column="0" Content="用户名:" VerticalAlignment="Center"  /><TextBox Grid.Row="1" Grid.Column="1" x:Name="txtUseName" IsReadOnly="False" Margin="5" Text="" /><Label Grid.Row="2" Grid.Column="0" Content="密码:" VerticalAlignment="Center" /><Grid Grid.Row="2" Grid.Column="1" Margin="5"><Grid.ColumnDefinitions><ColumnDefinition Width="89*"/><ColumnDefinition Width="377*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions><PasswordBox x:Name="txtPassword" Grid.Column="0" VerticalAlignment="Center" Grid.ColumnSpan="2"  Password=""/><CheckBox x:Name="chkRememberPassword" Content="保存密码" Grid.Column="2" Margin="5,0,0,0"VerticalAlignment="Center"/></Grid><!-- 选择Excel文件 --><Label Grid.Row="3" Grid.Column="0" Content="选择EXCEL文件:" VerticalAlignment="Center"/><TextBox Grid.Row="3" Grid.Column="1" x:Name="txtExcelPath" IsReadOnly="True" Margin="5"/><Button Grid.Row="3" Grid.Column="2" Content="浏览..." Width="80" Margin="5" Click="BtnBrowseExcel_Click"/><!-- 选择图片目录 --><Label Grid.Row="4" Grid.Column="0" Content="选择图片目录:" VerticalAlignment="Center"/><TextBox Grid.Row="4" Grid.Column="1" x:Name="txtImageDir"  Margin="5"/><Button Grid.Row="4" Grid.Column="2" Content="浏览..." Width="80" Margin="5,0,5,5" Click="BtnBrowseImageDir_Click" Height="25" VerticalAlignment="Bottom"/><!-- 选择店铺--><Label Grid.Row="6" Grid.Column="0" Content="店铺:" VerticalAlignment="Center"/><ComboBox Grid.Row="6" Grid.Column="1" x:Name="cmbStore" Margin="5" ></ComboBox><!-- 上传按钮 --><Button Grid.Row="7" Grid.Column="2" Content="正式上传" Width="120" Height="36" Margin="5" HorizontalAlignment="Left" Click="BtnUpload_Click"/><!-- 结果显示 --><TextBox Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="3" x:Name="txtResult" Margin="5" Height="100" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" IsReadOnly="True"/><!-- SignalR消息列表 --><Label Grid.Row="0" Grid.Column="3" Content="信息列表:" VerticalAlignment="Center"/><ListBox Grid.Row="1" Grid.Column="3" Grid.RowSpan="4" x:Name="lstSignalRMessages" Margin="5"/></Grid>
</Window>

二、 在windows客户端上传商品信息

使用NPOI 读取EXCEL的文件内容

using NPOI.HSSF.UserModel;
using NPOI.OpenXml4Net.Exceptions;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.IO;
using System.Windows;namespace ExcelReaderApp
{/// <summary>/// Excel 读取工具类/// </summary>public static class ExcelReader{/// <summary>/// 读取 Excel 文件到 DataTable(自动检测工作表)/// </summary>public static DataTable ReadExcelToDataTable(string filePath){return ReadExcelToDataTable(filePath, readFirstSheetOnly: true, sheetIndex: 0);}/// <summary>
http://www.xdnf.cn/news/19709.html

相关文章:

  • 在本地使用 Docker 创建一个易受攻击的云环境
  • leetcode46.全排列
  • 【LLIE专题】一种语义感知知识引导的低照度图像增强方案
  • Day23 机器学习流水线(管道/pipeline)
  • 小程序开发:懒加载只加载当前和滑动到的图片
  • 【Doris入门】Doris数据表模型:主键模型(Unique Key Model)详解
  • 【重学MySQL】九十六、MySQL SQL Mode高效配置全攻略
  • Linux 孤儿进程 (Orphan Process)
  • 【学Python自动化】 6.1 Python 模块系统学习笔记 (与 Rust 对照)
  • Linux中命令收集
  • UE5 C++ 第三方动态库的使用
  • 「任天堂物语」08 任天堂的山寨时代
  • 递归进阶之全排列、组合
  • JS箭头函数
  • 数字铁流:2025.9.3国庆大阅兵系统架构解析
  • 贪心算法解决固定长度区间覆盖问题:最少区间数计算
  • OpenCV 实战:图像模板匹配与旋转处理实现教程
  • G156HAN04.0 宽温域高亮工业屏技术白皮书
  • Spring Ioc —— 集合类型的依赖注入
  • Next.js渲染模式:SSR、SSG与ISR揭秘
  • 第六章:健壮Go应用:工程实践与生产就绪之测试
  • 旧实例数据库损坏sqlserver启动失败解决办法
  • Java PDF转多种图片格式:技术实践与性能优化
  • CS25FTFR010 1225 0.01R/10mR有哪些优势-华年商城
  • 联邦学习论文分享:Federated Learning via Synthetic Data
  • 搭建APP应用程序如何选择服务器
  • 选择图片转base64格式组件简单封装-Base64ImageInpu
  • 【Node.js教程】Express框架入门:从搭建到动态渲染商品列表
  • 埃文科技亮相2025中部数字经济产业发展大会暨数智创新博览会
  • 数据库事务隔离级别与 MVCC 机制详解