import { useState, useCallback, useEffect, forwardRef, useImperativeHandle, useRef } from 'react';
import {
// exportToolBarItem,
// importToolBarItem,
FortuneExcelHelper,
transformFortuneToExcel,
transformExcelToFortune,
} from '@corbe30/fortune-excel';
import { Workbook } from '@fortune-sheet/react';
import '@fortune-sheet/react/dist/index.css';
import { omit } from 'lodash';
export default forwardRef(({ style, url, allowEdit }, ref) => {
const [key, setKey] = useState(0);
const [data, setData] = useState([{ name: 'Sheet1' }]);
const workbookRef = useRef();
const loadExcelFromUrl = async (fileUrl) => {
try {
const response = await fetch(fileUrl);
const blob = await response.blob();
const file = new File([blob], 'excel-file.xlsx', {
type: blob.type,
});
const dataTransfer = new DataTransfer();
dataTransfer.items.add(file);
const fileList = dataTransfer.files;
await transformExcelToFortune({ target: { files: fileList } }, setData, setKey, workbookRef);
setTimeout(() => {
workbookRef.current?.calculateFormula?.();
}, 100);
} catch (error) {
console.error('Error loading Excel from URL:', error);
throw error;
}
};
useEffect(() => {
if (url) {
loadExcelFromUrl(url);
}
}, [url]);
return (
<div style={{ width: '100%', height: 'calc(100vh - 184px)', ...style }}>
<FortuneExcelHelper
setKey={setKey}
// setSheets={setData}
sheetRef={workbookRef}
config={{
import: { xlsx: true, csv: true },
export: { xlsx: true, csv: true },
}}
/>
<Workbook
key={key}
ref={workbookRef}
data={data}
allowEdit={true}
onChange={onChange}
// customToolbarItems={[importToolBarItem(), exportToolBarItem()]}
/>
</div>
);
});
Describe the bug
导入文件出现若干问题:
To Reproduce
Expected behavior
Screenshots
实际效果
期待效果
原表格如下,且用excel打开没问题。
20260128多市报表驳回验证01.2026-01-28 17_35_03.xlsx
Additional context
Add any other context about the problem here.