前几天已将基于开源CoreShop框架的微信小程序开启多租户功能,还开发了一个辅助客户端,已经完成了以下工作:
- 修改管理员表格,添加上所管理的店铺列表,两个产品信息表也全部加上所属店铺信息。
- 开发一个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>