diff --git a/crates/xlsx/src/drawing.rs b/crates/xlsx/src/drawing.rs
index b702331c8..cebc11460 100644
--- a/crates/xlsx/src/drawing.rs
+++ b/crates/xlsx/src/drawing.rs
@@ -615,7 +615,7 @@ fn run_props(f: &ShapeFormat, theme: &Theme) -> (String, String) {
let _ = write!(body, "{c}");
}
if let Some(font) = &f.font {
- let _ = write!(body, "", esc(font));
+ let _ = write!(body, "", esc_attr(font));
}
(attrs, body)
}
diff --git a/crates/xlsx/src/tests/shape_text_rtl.rs b/crates/xlsx/src/tests/shape_text_rtl.rs
index c60fd53f1..dcb862582 100644
--- a/crates/xlsx/src/tests/shape_text_rtl.rs
+++ b/crates/xlsx/src/tests/shape_text_rtl.rs
@@ -85,3 +85,19 @@ fn shape_text_without_rtl_writes_unchanged_ppr() {
let xml = written_drawing(&text_box("plain", ShapeFormat::default()));
assert!(!xml.contains("