From 49f09cc6f8ff8c30a75ed1a9d6f510b69b73962a Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 12 十二月 2023 21:05:37 +0800 Subject: [PATCH] 2023-12-12 --- src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx | 38 ++++++++++++++++++++++++++------------ 1 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx b/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx index d3d057d..ee748ae 100644 --- a/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx +++ b/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx @@ -1,7 +1,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { notification } from 'antd' -import * as XLSX from 'xlsx' +import * as XLSX from 'sheetjs-style' import Utils from '@/utils/utils.js' import './index.scss' @@ -27,7 +27,8 @@ onImportExcel = file => { const { btn } = this.props - let columns = btn.verify.columns.map(option => option.Column) + let btnColumns = btn.verify.columns.filter(option => option.import !== 'init') + let columns = btnColumns.map(option => option.Column) let range = btn.verify.range || 0 // excel鏁版嵁澶勭悊 @@ -42,36 +43,49 @@ const workbook = XLSX.read(result, { type: 'binary' }) let errors = null + let sheetName = btn.verify.sheet + let errDetail = '' - if (!workbook.Sheets.hasOwnProperty(btn.verify.sheet)) { + if (sheetName === 'Sheet1' && Object.keys(workbook.Sheets).length === 1) { + sheetName = Object.keys(workbook.Sheets)[0] + } + + if (!workbook.Sheets.hasOwnProperty(sheetName)) { errors = 'notexit' } else if (range === 1) { - let header = XLSX.utils.sheet_to_json(workbook.Sheets[btn.verify.sheet], {header: columns})[0] + let header = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {header: columns})[0] if (!header) { errors = 'empty' } else { let iserror = false - btn.verify.columns.forEach(op => { - if (header[op.Column] !== op.Text) { + btnColumns.forEach(op => { + if (iserror) return + + let _name = typeof(header[op.Column]) === 'string' ? header[op.Column].replace(/(^\s*|\s*$)/g, '') : header[op.Column] + let _text = op.Text ? op.Text.replace(/(^\s*|\s*$)/g, '') : op.Text + + if (!_name) { iserror = true + errors = 'headerError' + errDetail = `Excel涓笉瀛樺湪锛�${_text}锛夊垪锛乣 + } else if (_name !== _text) { + iserror = true + errors = 'headerError' + errDetail = `Excel涓紙${_name}锛変笌鎸夐挳鍒椾俊鎭紙${_text}锛変笉涓�鑷达紒` } }) - - if (iserror) { - errors = 'headerError' - } } } let data = [] if (!errors) { - data = XLSX.utils.sheet_to_json(workbook.Sheets[btn.verify.sheet], {header: columns, range: (range)}) + data = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {header: columns, range: (range)}) } // 鏈�缁堣幏鍙栧埌骞朵笖鏍煎紡鍖栧悗鐨� json 鏁版嵁 - this.props.returndata(data, errors) + this.props.returndata(data, errors, sheetName, errDetail) this.setState({ excelId: '', }, () => { -- Gitblit v1.8.0