前幾天已將基于開源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>