update at 2026-02-14 11:01:22

This commit is contained in:
douboer@gmail.com
2026-02-14 11:01:22 +08:00
parent 53c7fa7b81
commit 78896060b2
3 changed files with 20 additions and 9 deletions

View File

@@ -9,7 +9,7 @@
<image class="tool-icon upload-trigger" src="../../assets/icons/upload.svg" mode="aspectFit" bindtap="onChooseFile" /> <image class="tool-icon upload-trigger" src="../../assets/icons/upload.svg" mode="aspectFit" bindtap="onChooseFile" />
<view class="upload-box" bindtap="onChooseFile"> <view class="upload-box" bindtap="onChooseFile">
<text class="upload-text">{{uploadMessage}}</text> <text class="upload-text" user-select>{{uploadMessage}}</text>
</view> </view>
<view class="export-box"> <view class="export-box">
@@ -74,15 +74,15 @@
</view> </view>
</view> </view>
<text wx:if="{{buildError}}" class="error-text">{{buildError}}</text> <text wx:if="{{buildError}}" class="error-text" user-select>{{buildError}}</text>
<text wx:if="{{parseError}}" class="error-text">{{parseError}}</text> <text wx:if="{{parseError}}" class="error-text" user-select>{{parseError}}</text>
<canvas class="preview-canvas" canvas-id="sankeyCanvas" id="sankeyCanvas" /> <canvas class="preview-canvas" canvas-id="sankeyCanvas" id="sankeyCanvas" />
</view> </view>
<view class="bottom-panels" style="height: {{bottomPanelsHeightPx}}px;"> <view class="bottom-panels" style="height: {{bottomPanelsHeightPx}}px;">
<view class="panel data-panel"> <view class="panel data-panel">
<image class="panel-title" src="../../assets/icons/data-select.svg" mode="widthFix" /> <image class="panel-title" src="../../assets/icons/data-select.svg" mode="widthFix" />
<scroll-view class="data-scroll" scroll-y enhanced show-scrollbar="true"> <scroll-view class="data-scroll" scroll-y enhanced enable-flex show-scrollbar="true">
<text wx:if="{{columnHeaders.length === 0}}" class="empty-tip">未加载文件,暂无列信息</text> <text wx:if="{{columnHeaders.length === 0}}" class="empty-tip">未加载文件,暂无列信息</text>
<view class="field-group"> <view class="field-group">
@@ -155,13 +155,15 @@
<view class="panel log-panel"> <view class="panel log-panel">
<image class="panel-title panel-title-log" src="../../assets/icons/information.svg" mode="widthFix" /> <image class="panel-title panel-title-log" src="../../assets/icons/information.svg" mode="widthFix" />
<scroll-view class="log-list" scroll-y enhanced show-scrollbar="true"> <scroll-view class="log-list" scroll-y enhanced enable-flex show-scrollbar="true">
<text class="log-item" wx:for="{{infoLogs}}" wx:key="index">{{item}}</text> <text class="log-item" wx:for="{{infoLogs}}" wx:key="index" user-select>{{item}}</text>
</scroll-view> </scroll-view>
</view> </view>
</view> </view>
<view class="footer">@版权说明星程社所有反馈邮箱douboer@gmail.com</view> <view class="footer">
<text user-select>@版权说明星程社所有反馈邮箱douboer@gmail.com</text>
</view>
<view class="theme-sheet-mask" wx:if="{{showThemeSheet}}" bindtap="onCloseThemeSheet" /> <view class="theme-sheet-mask" wx:if="{{showThemeSheet}}" bindtap="onCloseThemeSheet" />
<view class="theme-sheet" wx:if="{{showThemeSheet}}"> <view class="theme-sheet" wx:if="{{showThemeSheet}}">
@@ -170,6 +172,7 @@
class="theme-list" class="theme-list"
scroll-y scroll-y
enhanced enhanced
enable-flex
show-scrollbar="true" show-scrollbar="true"
scroll-top="{{themeListScrollTop}}" scroll-top="{{themeListScrollTop}}"
scroll-with-animation scroll-with-animation

View File

@@ -251,7 +251,11 @@ function parseXlsxBuffer(buffer) {
throw new Error('当前环境未启用 xlsx 解析,请先在开发者工具执行“构建 npm”'); throw new Error('当前环境未启用 xlsx 解析,请先在开发者工具执行“构建 npm”');
} }
const workbook = xlsx.read(buffer, { type: 'array' }); const workbook = xlsx.read(buffer, {
type: 'array',
// 兼容部分旧版 xls 在小程序环境下的中文 codepage 解析。
codepage: 936
});
const firstSheetName = workbook.SheetNames[0]; const firstSheetName = workbook.SheetNames[0];
if (!firstSheetName) { if (!firstSheetName) {
throw new Error('Excel 文件中没有工作表'); throw new Error('Excel 文件中没有工作表');

View File

@@ -82,7 +82,11 @@ export function parseCsvText(csvText: string): RawTable {
* 解析 xlsx 的二进制数据。 * 解析 xlsx 的二进制数据。
*/ */
export function parseXlsxBuffer(buffer: ArrayBuffer): RawTable { export function parseXlsxBuffer(buffer: ArrayBuffer): RawTable {
const workbook = XLSX.read(buffer, { type: 'array' }); const workbook = XLSX.read(buffer, {
type: 'array',
// 兼容部分旧版 xls 在浏览器环境下的中文 codepage 解析。
codepage: 936
});
const firstSheetName = workbook.SheetNames[0]; const firstSheetName = workbook.SheetNames[0];
if (!firstSheetName) { if (!firstSheetName) {