Applying text format to a column also sets the format to the next column.
This happens when the columns have a size different from the default and two consecutive columns with different format also have the same size. This can be worked around with a slight change in the column sizes:
int columnCount = worksheet.UsedCellRange.ColumnCount;
for(int i = 1; i < columnCount; i++)
{
ColumnWidth colWidth = worksheet.Columns[i].GetWidth().Value;
if(colWidth.Value != SpreadsheetDefaultValues.DefaultColumnWidth)
{
ColumnWidth previousColWidth = worksheet.Columns[i - 1].GetWidth().Value;
if(colWidth.Equals(previousColWidth))
{
worksheet.Columns[i].SetWidth(new ColumnWidth(colWidth.Value + 1, colWidth.IsCustom));
}
}
}
The Value property of DefinedName (implementing ISpreadsheetName) always returns a result with a General format, which is very impractical when the value is for example a date. There should be an option to get a formatted result as well.
A possible workaround for this missing functionality would be to parse the RefersTo value and find where it points in order to grab the format:
Workbook workbook = new Workbook();
Worksheet ws = workbook.Worksheets.Add();
ws.Cells[0, 1].SetValue("2/1/2013");
ws.Names.Add("MyField", "=Sheet1!$B$1", new CellIndex(0, 0), "My Field");
string value = ws.Names["MyField"].Value;
CellRange range;
bool success = NameConverter.TryConvertCellRangeNameToCellRange(ws.Names["MyField"].RefersTo, out range);
CellValueFormat format = ws.Cells[range].GetFormat().Value;
string result = ws.Cells[range].GetValue().Value.GetResultValueAsString(format);
When a worksheet contains a cell with longer text, which is right aligned and this text happens to be in the last column of the page, the worksheet is incorrectly split into pages and the last column gets transferred on the next page.
Workaround: Set explicitly the print area you would like to print.
worksheet.WorksheetPageSetup.PrintArea.SetPrintArea(new CellRange(0, 0, 38, 14));
LayoutHelper is not calculating Height properly in net standard.
Workaround: use SpreadFixedTextMeasurer
Provide the following options for the image: