Reactjs 数组以进行excel响应
我对此有点陌生,我正在尝试将我的数据数组传递到excel,但到目前为止,没有任何东西适合我 我有一个例子Reactjs 数组以进行excel响应,reactjs,typescript,Reactjs,Typescript,我对此有点陌生,我正在尝试将我的数据数组传递到excel,但到目前为止,没有任何东西适合我 我有一个例子 import {ExcelFile, ExcelSheet} from "react-export-excel"; const [listSelectNewTable, setListSelectNewTable] = useState([]) const DataExcel = [ { columns: [ { value: "Clave Client
import {ExcelFile, ExcelSheet} from "react-export-excel";
const [listSelectNewTable, setListSelectNewTable] = useState([])
const DataExcel = [
{
columns: [
{ value: "Clave Cliente", widthPx: 50 },
{ value: "Nobre Cliente", widthCh: 20, widthCh: 20 },
{ value: "Clave Articulo", widthPx: 60},
{ value: "Nombre Cliente", widthPx: 60},
{ value: "Clave Unidad", widthPx: 60},
{ value: "Precio", widthPx: 60},
],
data: [listSelectNewTable],
}
];
class Download extends React.Component {
render() {
return (
<ExcelFile>
<ExcelSheet dataSet={DataExcel} name="Price"/>
</ExcelFile>
);
}
从“react export excel”导入{ExcelFile,ExcelSheet};
常量[listSelectNewTable,setListSelectNewTable]=useState([])
常量数据Excel=[
{
栏目:[
{值:“Clave客户”,宽度px:50},
{value:“Nobre客户”,widthCh:20,widthCh:20},
{值:“Clave Articulo”,宽度px:60},
{值:“名义客户”,宽度px:60},
{值:“Clave Unidad”,宽度px:60},
{值:“Precio”,宽度px:60},
],
数据:[listSelectNewTable],
}
];
类下载扩展了React.Component{
render(){
返回(
);
}
有人能告诉我我做错了什么吗?在我们开始之前:
很明显,如果不将任何数据传递给数据集
,您将不会有任何数据:
const[listSelectNewTable,setListSelectNewTable]=useState([])
//listSelectNewTable=[]
此外,您还试图在组件外部调用useState
,然后继续使用class
组件。如果不想听起来有屈尊俯就的意思,您确实应该研究何时使用以及何时使用(提示:这是一个或另一个),因为它超出了此问题/答案的范围,但如果您不花时间至少理解基本知识,代码将永远无法工作
我的回答的剩余部分假设你至少解决了这个问题
问题是:
此外,即使它有任何数据,也会导致错误,因为您的数据键入错误
数据集
prop类型
定义为:
dataSet: Array<ExcelSheetData>
dataSet
prop的是
Array<ExcellCellData>
// expecting: Array<ExcelValue | ExcelCell> (eg. ['A', 22])
Array<Array<never>>
// received: [[]]
// [] = Array<never>
现在您可以正确地传递数据了,但是很明显,除非您传递的是任何实际数据而不是空数组,否则excel工作表中不会有任何内容阻止列
最终注释(答案不需要):
一般来说,我建议在github页面上使用星级较高的软件包(这个有65个)这只是现有软件包的一个分支,尤其是对于excel导出等更复杂的东西。虽然有时毛坯中确实存在隐藏的钻石,但大多数情况下,星星是软件包质量的良好指示器
我第一次随机浏览了一下软件包后,发现自己的答案中有一个打字错误,这让我担心里面还有多少其他错误,除非你知道并信任作者,或者这是一个非常合适的软件包
因为递归
interface ExcelCell {
value: ExcelCell; // should be ExcelCellValue
style: ExcelStyle;
}
毫无意义,只需要无限递归地声明对象接口定义。有几件事需要更改: 不能将useState钩子与类组件一起使用。若要使用此钩子,请将组件更改为功能组件 您没有正确使用库。下面是一个很好的示例,说明如何使用它: 特别是,您没有向图纸中添加任何列 我猜您希望为组件提供动态数据(它不应该总是显示相同的内容)。如果您希望这样做,您应该在父组件级别注入数据 所以对于你们班:
import React, { useState } from 'react';
import ReactExport from "react-export-excel";
const ExcelFile = ReactExport.ExcelFile;
const ExcelSheet = ReactExport.ExcelFile.ExcelSheet;
const ExcelColumn = ReactExport.ExcelFile.ExcelColumn;
const Download = ({ data }) => {
const [listSelectNewTable, setListSelectNewTable] = useState(data);
return (
<ExcelFile>
<ExcelSheet data={listSelectNewTable} name="Price">
{
listSelectNewTable[0].columns.map(d =>
<ExcelColumn label={d.value} value={0} />)
}
</ExcelSheet>
</ExcelFile>
); }
export default Download;
import React,{useState}来自“React”;
从“react导出excel”导入react导出;
const ExcelFile=ReactExport.ExcelFile;
const ExcelSheet=ReactExport.ExcelFile.ExcelSheet;
const ExcelColumn=ReactExport.ExcelFile.ExcelColumn;
常量下载=({data})=>{
const[listSelectNewTable,setListSelectNewTable]=useState(数据);
返回(
{
listSelectNewTable[0]。columns.map(d=>
)
}
); }
导出默认下载;
对于家长:
<Download data={DataExcel} />
使用父类中最初在类中拥有的数据,以便您可以将其注入组件。您是否可以共享正在使用的库(例如,Excel文件和Excel工作表是什么)?准备添加它…您是否尝试使用此示例数据集?如果是,则您提供的数据格式不正确-您传递到
数据集的数据数组不包含任何数据(?)此外,它的类型不正确。它应该是在传递Array
的同时传递的。如果这是我举的示例,为了更好地理解,我只想传递const[listSelectNewTable,setListSelectNewTable]=useState([])
到excel..我该怎么做?或者我在哪里可以举一个例子listSelectNewTable
它已经有了数据,我用另一种方法填充它,现在当我将它添加到一个对象时,我的任务是创建excel,然后通过S3发送它
<Download data={DataExcel} />