File was renamed from src/tabviews/zshare/actionList/excelin/index.jsx |
| | |
| | | |
| | | class ExcelIn extends Component { |
| | | static propTpyes = { |
| | | btn: PropTypes.object, // 按钮信息 |
| | | MenuID: PropTypes.string, // 菜单ID |
| | | returndata: PropTypes.func // 菜单ID |
| | | returndata: PropTypes.func // 获取返回数据 |
| | | } |
| | | |
| | | state = { |
| | | excelbtn: null, |
| | | primaryId: '', // 行Id |
| | | excelId: Utils.getuuid() |
| | | } |
| | | |
| | | exceltrigger = (item, primaryId) => { |
| | | exceltrigger = () => { |
| | | const { excelId } = this.state |
| | | this.setState({ |
| | | excelbtn: item, |
| | | primaryId: primaryId |
| | | }) |
| | | |
| | | let _excelInput = document.getElementById(excelId + this.props.MenuID) |
| | | |
| | | if (_excelInput) { |
| | |
| | | } |
| | | } |
| | | onImportExcel = file => { |
| | | const { excelbtn, primaryId } = this.state |
| | | const { btn } = this.props |
| | | |
| | | let columns = excelbtn.verify.columns.map(option => option.Column) |
| | | let range = excelbtn.verify.range || 0 |
| | | let columns = btn.verify.columns.map(option => option.Column) |
| | | let range = btn.verify.range || 0 |
| | | |
| | | // excel数据处理 |
| | | const { files } = file.target |
| | |
| | | |
| | | let errors = null |
| | | |
| | | if (!workbook.Sheets.hasOwnProperty(excelbtn.verify.sheet)) { |
| | | if (!workbook.Sheets.hasOwnProperty(btn.verify.sheet)) { |
| | | errors = 'notexit' |
| | | } else if (range === 1) { |
| | | let header = XLSX.utils.sheet_to_json(workbook.Sheets[excelbtn.verify.sheet], {header: columns})[0] |
| | | let header = XLSX.utils.sheet_to_json(workbook.Sheets[btn.verify.sheet], {header: columns})[0] |
| | | |
| | | if (!header) { |
| | | errors = 'empty' |
| | | } else { |
| | | let iserror = false |
| | | excelbtn.verify.columns.forEach(op => { |
| | | btn.verify.columns.forEach(op => { |
| | | if (header[op.Column] !== op.Text) { |
| | | iserror = true |
| | | } |
| | |
| | | let data = [] |
| | | |
| | | if (!errors) { |
| | | data = XLSX.utils.sheet_to_json(workbook.Sheets[excelbtn.verify.sheet], {header: columns, range: (range)}) |
| | | data = XLSX.utils.sheet_to_json(workbook.Sheets[btn.verify.sheet], {header: columns, range: (range)}) |
| | | } |
| | | |
| | | // 最终获取到并且格式化后的 json 数据 |
| | | this.props.returndata(data, excelbtn, errors, primaryId) |
| | | this.props.returndata(data, errors) |
| | | this.setState({ |
| | | excelId: '', |
| | | primaryId: '' |
| | | }, () => { |
| | | this.setState({ |
| | | excelId: Utils.getuuid() |
| | |
| | | message: '文件解析错误,请检查文件格式!', |
| | | duration: 5 |
| | | }) |
| | | // 错误传递 |
| | | this.props.returndata([], 'other') |
| | | } |
| | | } |
| | | |