找回密码
 立即注册

QQ登录

只需一步,快速开始

樱花飞舞
注册会员   /  发表于:2024-6-24 14:25:55
10#
Joestar.Xu 发表于 2024-6-24 11:44
您好,根据您提供的信息无法判断具体的原因,请您直接提供一个可以复现您问题的Demo,这边结合实际代码帮您 ...

您好,由于公司电脑文件加密限制,只能贴这个代码了,还请见谅哈
使用react官方cli命令创建的demo项目:yarn create react-app sjs-react-app
index.js文件

  1. import React, { useState, useEffect } from 'react';
  2. import * as GC from '@grapecity-software/spread-sheets';
  3. import "@grapecity/spread-sheets-io";
  4. import { SpreadSheets, Worksheet } from '@grapecity-software/spread-sheets-react';
  5. import '../node_modules/@grapecity-software/spread-sheets/styles/gc.spread.sheets.excel2013white.css';

  6. function App() {
  7.   const [spread, setSpread] = useState()
  8.   const [selectedFile, setSelectedFile] = useState(null)

  9.   let hostStyle = {
  10.     width: '100%',
  11.     height: '600px',
  12.     border: '1px solid darkgray'
  13.   }

  14.   useEffect(() => {
  15.     if (!selectedFile) {
  16.       console.log(111)
  17.       return
  18.     } else {
  19.       console.log(selectedFile, '<<<<selectedFile');
  20.       spread.open(selectedFile, function() {
  21.         console.log('success');

  22.       }, function (info) {
  23.         console.log(info,'error');
  24.       })      
  25.     }
  26.   }, [selectedFile])

  27.   let initSpread = function (spread) {
  28.     setSpread(spread)
  29.     // let sheet = spread.getActiveSheet();
  30.     // sheet.getCell(0, 0).vAlign(GC.Spread.Sheets.VerticalAlign.center).value('Hello SpreadJS!');
  31.   }

  32.   const uploadChange = (e) => {
  33.     console.log(e, '<<<<file');
  34.     let file = e.target.files[0];
  35.     setSelectedFile(file)
  36.   }


  37.   return (
  38.     <div className="App">
  39.       <input type="file" onChange={uploadChange} accept=".xls,.xlsx" />
  40.       <SpreadSheets workbookInitialized={spread => initSpread(spread)}  hostStyle={hostStyle}>
  41.         <Worksheet></Worksheet>
  42.       </SpreadSheets>
  43.     </div>
  44.   );
  45. }

  46. export default App;
复制代码
package.json文件
  1. {
  2.   "name": "sjs-react-app",
  3.   "version": "0.1.0",
  4.   "private": true,
  5.   "dependencies": {
  6.     "@grapecity-software/spread-sheets": "^17.0.10",
  7.     "@grapecity-software/spread-sheets-io": "^17.0.10",
  8.     "@grapecity-software/spread-sheets-react": "^17.0.10",
  9.     "cra-template": "1.2.0",
  10.     "react": "^18.3.1",
  11.     "react-dom": "^18.3.1",
  12.     "react-scripts": "5.0.1"
  13.   },
  14.   "scripts": {
  15.     "start": "react-scripts start",
  16.     "build": "react-scripts build",
  17.     "test": "react-scripts test",
  18.     "eject": "react-scripts eject"
  19.   },
  20.   "eslintConfig": {
  21.     "extends": [
  22.       "react-app",
  23.       "react-app/jest"
  24.     ]
  25.   },
  26.   "browserslist": {
  27.     "production": [
  28.       ">0.2%",
  29.       "not dead",
  30.       "not op_mini all"
  31.     ],
  32.     "development": [
  33.       "last 1 chrome version",
  34.       "last 1 firefox version",
  35.       "last 1 safari version"
  36.     ]
  37.   }
  38. }
复制代码




回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-31 16:19:10
12#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部