Provide a way to measure text on different platforms so the user can pass the cell value and SpreadCellFormat and get the size of the text in pixels. This way we will be able to implement auto-fit to width functionality (AutoFitWidth), at least for the .NET Framework implementation. It will be able to measure the width of all cells in a column and set the value as column width in pixels.
When calling SpreadExporter.CreateWorkbookExporter method and referencing Trial assemblies an exception is thrown: System.ArgumentException: 'An item with the same key has already been added.'
This behavior is observed both with the NuGet packages and DLLs.
It is not observed with Trial DLLs version 2020.3.1019
ArgumentException with clarification similar to "'\u001f', hexadecimal value 0x1F, is an invalid character." is thrown when trying to export document containing characters which are not supported in XML document - such as some control characters like 0x00, 0x1F, 0x1B, etc.
Such characters are described in the XML specification here: https://www.w3.org/TR/xml/#charsets.
using (var stream = File.OpenWrite("sample.xlsx"))
using (var workbook = SpreadExporter.CreateWorkbookExporter(SpreadDocumentFormat.Xlsx, stream))
using (var worksheet = workbook.CreateWorksheetExporter("My sheet"))
using (var row = worksheet.CreateRowExporter())
using (var cell = row.CreateCellExporter())
{
cell.SetValue(string.Format("Error Value: {0} ", Encoding.ASCII.GetString(new byte[] { 8 })));
}When setting a date in a cell using SetValue(DateTime), the value should be converted to its numerical representation before adding it to the XML. However, it is currently written as a string. This causes issues when opening the generated file with Google Sheets - the dates are not visible in the file. A customer also reported that this is causing issues when the file is opened with MS Excel in specific cultures, but we were unable to reproduce that locally. Workaround: Convert the DateTime value to a number before setting it to the cell: cell.SetValue(DateTime.Now.Date.ToOADate());
At the moment only the XLSX and CSV formats are supported. It would be a good idea to add the TXT format as well.
Expose an option to overwrite a sheet if it already exists in the workbook.
Add ability to export charts.
The UTF8 with BOM encoding should be used to properly preserve the different characters. Available in R3 2017 Official Release.