Closed 2ndDerivative closed 1 year ago
Thanks for the detailed report.
As reported this isn't a bug since it isn't intended, in rust_xlsxwriter
that the apostrophes are stripped in general. They are only removed when they are "notional", i.e., when they indicate the sheet name contains whitespace.
There probably does need to be centralised name checking, like you suggested in #45. I'll look into that.
I also need to check if there is a bug if an invalid worksheet name is passed as a chart range. I'll keep this open and look into that.
Thanks again.
According to the Microsoft spec it's not supposed to use apostrophes in general if I read this right https://support.microsoft.com/en-us/office/rename-a-worksheet-3f1f7148-ee83-404d-8ef0-9ff99fbad1f9
According to the Microsoft spec it's not supposed to use apostrophes in general if I read this right
Correct but rust_xlsxwriter
doesn't sanitize the input (in this case). This would be considered a user input error and should raise a validation error.
However, I just checked and it doesn't:
use rust_xlsxwriter::{Chart, ChartType, Workbook, XlsxError};
fn main() -> Result<(), XlsxError> {
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
let data = [1, 2, 3, 2, 1];
worksheet.write_column(0, 0, data)?;
let mut chart = Chart::new(ChartType::Column);
chart.add_series().set_values("'Sheet1!$A$1:$A$5");
worksheet.insert_chart(0, 2, &chart)?;
workbook.save("chart.xlsx")?;
Ok(())
}
$ cargo run --example gh44 # No error.
So I'll look into that and fix it so that there is proper validation.
That makes sense. So it would get plugged into the central system I suggested, that would be more idiomatic.
Closing this and merging the issue with #45
Current behavior
"'" is only stripped from sheet name in ChartRange if both start and beginning are apostrophes
Expected behavior
Either ' in the beginning or the end of the sheet name in a Chart range would be stripped, since the excel standard requires them to be removed independently
Sample code to reproduce
Environment
Any other information
No response