gpt4 book ai didi

javascript - js-xlsx - 获取特定行的 excel 表

转载 作者:行者123 更新时间:2023-12-05 04:33:29 24 4
gpt4 key购买 nike

我有一个包含 500 行的 Excel 工作表。我正在尝试获取从 101 到 200 的行。

我在谷歌中搜索过,我找到了一个获取起始行的例子,例如1 到 100 或 1 到 1000,甚至 1 到任何数字。

但我还没有找到任何代码来获取从第 m 行到第 n 行的行(这里 'm' 和 'n' 可以是任何数字,例如 m=101 到 n=200)

下面是我找到的获取前 100 行的代码:

  let workbook = XLSX.readFile('./files/uploaded_files/testfile.xlsx', {sheetRows: 100})
const wsname = workbook.SheetNames[0];
const ws = workbook.Sheets[wsname];
var exceldata = XLSX.utils.sheet_to_json(ws);

即使有其他模块获取中间的行,我想知道有没有?

最佳答案

使用一个更小的例子:

enter image description here

有几个选项:

您可以使用当前的方法并切片sheet_to_json返回的数组,例如

// option 1
const maxRow = 6;
const minRow = 3;
const wb = XLSX.readFile("./Book1.xlsx", {sheetRows: maxRow});
const ws = wb.Sheets[wb.SheetNames[0]];
let data = XLSX.utils.sheet_to_json(ws);
data = data.slice(minRow <= 2 ? 0 : minRow - 2);
console.log(data);

minRow - 2 说明 1 行是标题,另外 1 行是包含第 3 行,而不是排除它。这会产生:

[
{ a: 4, b: 5, c: 6 },
{ a: 7, b: 8, c: 9 },
{ a: 10, b: 11, c: 12 },
{ a: 13, b: 14, c: 15 }
]

另一种选择是结合使用 rangeheader (参见 here )选项。 range 允许您控制 sheet_to_json 考虑的范围,header 用于定义对象输出数组中使用的键。

您可以在导入整个文件后使用它,也可以继续使用 sheetRows 选项,例如:

// option 2
const importRange = "A3:F6";
const headers = ["a", "b", "c"];
const wb = XLSX.readFile("./Book1.xlsx"); // not using sheetRows
const ws = wb.Sheets[wb.SheetNames[0]];
const data = XLSX.utils.sheet_to_json(ws, {range: importRange, header: headers});
console.log(data);

产生:

[
{ a: 4, b: 5, c: 6 },
{ a: 7, b: 8, c: 9 },
{ a: 10, b: 11, c: 12 },
{ a: 13, b: 14, c: 15 }
]

请注意,如果您省略 headers 选项,则输出为:

[
{ '4': 7, '5': 8, '6': 9 },
{ '4': 10, '5': 11, '6': 12 },
{ '4': 13, '5': 14, '6': 15 }
]

因为第 3 行中的值成为新的默认标题(我认为您可能不想要)。

最后,如果您事先不知道 header ,您可以先获取一个数组数组,然后再找出 header :

// option 3
const importRange = "A3:F6";
const headers = 1;
const wb = XLSX.readFile("./Book1.xlsx"); // not using sheetRows
const ws = wb.Sheets[wb.SheetNames[0]];
const data = XLSX.utils.sheet_to_json(ws, {range: importRange, header: headers});
console.log(data);

产生:

[ 
[ 4, 5, 6 ],
[ 7, 8, 9 ],
[ 10, 11, 12 ],
[ 13, 14, 15 ]
]

关于javascript - js-xlsx - 获取特定行的 excel 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71405063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com