deepak-negi-web
5550b90704
**Title:** Fix for Incorrect Row Indexing and Infinite Loop in stream.to_json Function **Description:** This pull request addresses two key issues in the `stream.to_json` function of the SheetJS library: 1. **Infinite Loop**: Previously, when a row was hidden, the function skipped processing the current row without incrementing the row counter `R`, resulting in an infinite loop during execution. 2. **Incorrect Row Indexing**: The row index was incorrectly accessed using a one-based index, whereas the actual row index was zero-based. This led to unintended hidden rows being included in the stream and skipping of subsequent non-hidden rows. **Changes:** - Modified the hidden row check to use the correct zero-based indexing - Incremented `R` after identifying a hidden row to ensure the loop progresses to the next row. - Ensured that the stream correctly processes all rows, skipping hidden rows without affecting subsequent rows. **Testing:** - Validated that the `stream.to_json` function no longer enters an infinite loop when encountering hidden rows. - Confirmed that the correct rows are processed and pushed to the stream, with hidden rows being appropriately skipped. **Impact:** This fix enhances the reliability of the SheetJS library, ensuring accurate data streaming from spreadsheets without infinite loops or incorrect row handling. **Checklist:** - [x] Code changes have been tested locally. - [x] The changes adhere to the project's coding standards and guidelines. **Additional Information:** These changes are crucial for maintaining the library's functionality in production environments, where precise data handling is essential. **References:** Closes #3176. --- Reviewed-on: sheetjs/sheetjs#3178 Co-authored-by: deepak-negi-web <deepak-negi-web@noreply.git.sheetjs.com> Co-committed-by: deepak-negi-web <deepak-negi-web@noreply.git.sheetjs.com> |
||
---|---|---|
.github | ||
bin | ||
bits | ||
dist | ||
misc | ||
modules | ||
packages | ||
tests | ||
types | ||
.eslintignore | ||
.eslintmjs | ||
.eslintrc | ||
.flowconfig | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.jscs.json | ||
.jshintrc | ||
.npmignore | ||
.spelling | ||
.travis.yml | ||
bower.json | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
estk.jsx | ||
index.html | ||
LICENSE | ||
make.cmd | ||
Makefile | ||
multiformat.lst | ||
package.json | ||
README.md | ||
shim.js | ||
test.js | ||
test.mjs | ||
test.mts | ||
test.sh | ||
test.test.mjs | ||
test.ts | ||
testnocp.ts | ||
tests.lst | ||
xlsx.flow.js | ||
xlsx.full.min.js | ||
xlsx.js | ||
xlsx.mini.flow.js | ||
xlsx.mini.js | ||
xlsx.mjs | ||
xlsxworker.flow.js | ||
xlsxworker.js |
SheetJS
The SheetJS Community Edition offers battle-tested open-source solutions for extracting useful data from almost any complex spreadsheet and generating new spreadsheets that will work with legacy and modern software alike.
SheetJS Pro offers solutions beyond data processing: Edit complex templates with ease; let out your inner Picasso with styling; make custom sheets with images/graphs/PivotTables; evaluate formula expressions and port calculations to web apps; automate common spreadsheet tasks, and much more!
Documentation
Constellation
-
https://oss.sheetjs.com/notes/: File Format Notes
-
ssf
: Format data using ECMA-376 spreadsheet format codes -
xlsx-cli
: NodeJS command-line tool for processing files -
cfb
: Container (OLE/ZIP) file processing library -
codepage
: Legacy text encodings for XLS and other legacy spreadsheet formats -
dta
: Stata DTA file processor
License
Please consult the attached LICENSE file for details. All rights not explicitly granted by the Apache 2.0 License are reserved by the Original Author.