Код работает нормально, за исключением случаев, когда ячейки пусты, пустые ячейки игнорируются. я знаю, что есть
решение 1. Условие «если (h === undefined) продолжить;» в "xlsx.core.min.js" закомментируйте это.
Решение 2 . Передав дополнительный параметр Condition при запуске этого XLSX.utils.sheet_to_json(wb.Sheets[name], {blankCell: false}). добавить условие в строке №. 19150 "if(defval === undefined &&blankCell) продолжить;" в файле xlsx.js и т.д..
Но у меня в проекте нет файла "xlsx.core.min.js", и я не могу выделить строку no. 19150, чтобы добавить код для решения 2, а также я не создаю объект JSON.
мой код:
onChange = (event) => {
let newRows = this.state.rows;
let files = event.target.files, f = files[0];
var reader = new FileReader();
reader.onload = (event) => {
let newRowCt = this.state.rowCt;
let newColCt = this.state.colCt;
var data = new Uint8Array(event.target.result);
var workbook = XLSX.read(data, { type: 'array' });
const sn = workbook.SheetNames[0];
const sheet = workbook.Sheets[sn];
console.log(sheet["!ref"]);
let row = 1;
let col = 0;
Object.keys(workbook.Sheets[sn]).map((cell) => {
if (sheet[cell].w !== undefined) {
if (row !== parseInt(cell.slice(1), 10)) {
row++;
col = 0;
if (row >= newRowCt) {
newRows.push([]);
for (let k = 0; k < newColCt; k++) {
newRows[row].push("");
}
newRowCt++;
console.log(newColCt);
}
}