**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>