Skip to content

Commit 20838b3

Browse files
authored
feat: add print settings (#73)
1 parent 08110ab commit 20838b3

File tree

4 files changed

+41
-5
lines changed

4 files changed

+41
-5
lines changed

examples/nextjs/package-lock.json

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/src/wrapper/worksheet.rs

+32
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,22 @@ impl Worksheet {
165165
Ok(self.clone())
166166
}
167167

168+
#[wasm_bindgen(js_name = "setHeader", skip_jsdoc)]
169+
pub fn set_header(&self, header: &str) -> Worksheet {
170+
let mut book = self.workbook.lock().unwrap();
171+
let sheet = book.worksheet_from_index(self.index).unwrap();
172+
sheet.set_header(header);
173+
self.clone()
174+
}
175+
176+
#[wasm_bindgen(js_name = "setFooter", skip_jsdoc)]
177+
pub fn set_footer(&self, footer: &str) -> Worksheet {
178+
let mut book = self.workbook.lock().unwrap();
179+
let sheet = book.worksheet_from_index(self.index).unwrap();
180+
sheet.set_footer(footer);
181+
self.clone()
182+
}
183+
168184
/// Make a worksheet the active/initially visible worksheet in a workbook.
169185
///
170186
/// The `set_active()` method is used to specify which worksheet is
@@ -1602,6 +1618,22 @@ impl Worksheet {
16021618
Ok(self.clone())
16031619
}
16041620

1621+
#[wasm_bindgen(js_name = "setRepeatRows", skip_jsdoc)]
1622+
pub fn set_repeat_rows(&self, first_row: xlsx::RowNum, last_row: xlsx::RowNum) -> WasmResult<Worksheet> {
1623+
let mut book = self.workbook.lock().unwrap();
1624+
let sheet = book.worksheet_from_index(self.index).unwrap();
1625+
let _ = sheet.set_repeat_rows(first_row, last_row)?;
1626+
Ok(self.clone())
1627+
}
1628+
1629+
#[wasm_bindgen(js_name = "setRepeatColumns", skip_jsdoc)]
1630+
pub fn set_repeat_columns(&self, first_col: xlsx::ColNum, last_col: xlsx::ColNum) -> WasmResult<Worksheet> {
1631+
let mut book = self.workbook.lock().unwrap();
1632+
let sheet = book.worksheet_from_index(self.index).unwrap();
1633+
let _ = sheet.set_repeat_columns(first_col, last_col)?;
1634+
Ok(self.clone())
1635+
}
1636+
16051637
#[wasm_bindgen(js_name = "insertNote", skip_jsdoc)]
16061638
pub fn insert_note(
16071639
&mut self,

test/expected/print.xlsx

80 Bytes
Binary file not shown.

test/print.test.ts

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ describe("xlsx-wasm test", () => {
3030
worksheet.setPrintCenterHorizontally(true);
3131
worksheet.setPrintCenterVertically(true);
3232
worksheet.setPrintHeadings(true);
33+
worksheet.setHeader("&CHello");
34+
worksheet.setFooter("&CPage &[Page] of &[Pages]");
35+
worksheet.setRepeatColumns(0, 1);
36+
worksheet.setRepeatRows(0, 1);
3337

3438
// Assert
3539
const actual = await readXlsx(workbook.saveToBufferSync());

0 commit comments

Comments
 (0)