diff --git a/src/formats/sheet/xlsx.rs b/src/formats/sheet/xlsx.rs
index e0924562..f42b6c53 100644
--- a/src/formats/sheet/xlsx.rs
+++ b/src/formats/sheet/xlsx.rs
@@ -939,6 +939,18 @@ mod tests {
assert_eq!(table.grid[0].len(), 2);
}
+ #[test]
+ fn hidden_rows_and_columns_are_omitted_from_markdown() {
+ // Mirrors the issue #9 openpyxl repro: visible A1, hidden row 2, hidden col B.
+ let sheet = r#"VISIBLE_CELLHIDDEN_COL_TEXT
HIDDEN_ROW_TEXTHIDDEN_BOTH
"#;
+ let bytes = one_sheet(sheet).build();
+ let md = crate::to_markdown_bytes(&bytes, crate::Format::Excel).unwrap();
+ assert!(md.contains("VISIBLE_CELL"), "visible cell missing from markdown:\n{md}");
+ assert!(!md.contains("HIDDEN_ROW_TEXT"), "hidden row leaked into markdown:\n{md}");
+ assert!(!md.contains("HIDDEN_COL_TEXT"), "hidden column leaked into markdown:\n{md}");
+ assert!(!md.contains("HIDDEN_BOTH"), "hidden row+col leaked into markdown:\n{md}");
+ }
+
#[test]
fn hidden_rows_columns_and_sheets_are_omitted() {
// Hidden content is invisible to someone opening the workbook, so