Currently, the chart is generated considering the format applied to the cells. Thus, when the decimal part is clipped, duplicated values may occur and the developer doesn't have the option to update it:
This is the code:
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets.Add();
List<string> categories = new List<string> { "New", "In Progress", "Ready for Test", "Done", "Declined" };
worksheet.Cells[0, 0].SetValue("New");
worksheet.Cells[0, 1].SetValue(1);
worksheet.Cells[0, 2].SetValue(2.5);
worksheet.Cells[1, 0].SetValue("In Progress");
worksheet.Cells[1, 1].SetValue(2.8);
worksheet.Cells[1, 2].SetValue(0);
worksheet.Cells[2, 0].SetValue("Ready for Test");
worksheet.Cells[2, 1].SetValue(2);
worksheet.Cells[2, 2].SetValue(1);
worksheet.Cells[3, 0].SetValue("Done");
worksheet.Cells[3, 1].SetValue(1.4);
worksheet.Cells[3, 2].SetValue(0);
worksheet.Cells[4, 0].SetValue("Declined");
worksheet.Cells[4, 1].SetValue(3);
worksheet.Cells[4, 2].SetValue(0);
FloatingChartShape chartShape = new FloatingChartShape(worksheet, new CellIndex(5, 5), new CellRange(0, 0, 4, 2),ChartType.Column)
{
Width = 400,
Height = 250
};
worksheet.Charts.Add(chartShape);
CellSelection cellSelection = worksheet.Cells[new CellIndex(0, 1), new CellIndex(4, 2)];
CellValueFormat specialFormat = new CellValueFormat("0");
cellSelection.SetFormat(specialFormat);
string outputFilePath = "SampleFile.xlsx";
Telerik.Windows.Documents.Spreadsheet.FormatProviders.IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();
using (Stream output = new FileStream(outputFilePath, FileMode.Create))
{
formatProvider.Export(workbook, output);
}
Process.Start(new ProcessStartInfo() { FileName = outputFilePath, UseShellExecute = true });The requires options are setting the major/minor units for the axis:
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) at System.Collections.Generic.Dictionary`2.FindValue(TKey key) at System.Collections.Generic.Dictionary`2.ContainsKey(TKey key) at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.ConditionalFormattingRuleElementX14.OnAfterRead(IXlsxWorksheetImportContext context) in C:\Work\document-processing\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Elements\Worksheets\ConditionalFormatting\x14\ConditionalFormattingRuleElementX14.cs:line 62
The XlsxPartNames class expects a strict name for reading the comments parts:
public const string CommentsPartName = @"/xl/comments{0}.xml";
However, some third-party tools may change the name to GemComments.xml for example.
MS Excel recognizes this naming for the comments part. It would be nice to provide such functionality in RadSpreadProcessing.
This is preserved in the xml once saved from MS Excel:
Now there is no public API that allows the users to check if a Worksheet is empty or not. The UsedCellRange property returns a cell range that is only the cell A1 even if it is empty too. Possible solution is to expose IsEmpty property of the CellRange. Workaround: Check if Worksheet.UsedCellRange contains only A1, and that additionally A1 is empty.
The value of Worksheet.UsedCellRange could be calculated during the import of the workbook - as all cells are processed anyway. This will improve the performance of the first usage of this property, which is very common scenario. Also xlsx documents can have optional 'dimension' element which is used to specify the used cell range: <dimension ref="A1:C2"/>.
Introduce support for cell reference ranges which refer to whole columns. For example "=Sheet1$A:$A" refers to the whole column A.
Create API allowing conversion of .NET standard numeric format strings to Excel/RadSpreadsheet's number formats.
For example, G3 .NET numeric format should be converted to scientific notation RadSpreadsheet mode - CellValueFormat("0.00E+00").
Example:
<sheetViews>
<sheetView tabSelected="1" view="pageBreakPreview" zoomScaleNormal="100" zoomScaleSheetLayoutView="100" workbookViewId="0">
<selection activeCell="J5" sqref="J5"/>
</sheetView>
</sheetViews>
When a chart is inserted in a document, generated by SpreadProcessing or WordsProcessing, the chart seems to lack any bars. The reason is that some theme information is missing, which effectively makes shapes take their default color, which is transparent. The same applies for shapes inserted in any Document Processing-generated OOXML documents - docx, xlsx. Workaround: (applicable for Excel) Manually change the theme for the document in MS Excel: - Choose Page Layout -> Themes -> Themes dropdown -> Office.
Add support for theme effects (format schemes). They are described in OOXML using the 'fmtScheme' element. Thing of providing predefined sets. In MS Excel the UI for changing is located in Page Layout tab -> Themes -> Effects.
Split allows you to split the window into different panes that each scroll separately. This feature is different than the horizontal/vertical split of freeze panes, which is supported.
When importing and exporting xlsx document with email address hyperlink the exported document shows invalid document message when opened in Excel: "We found a problem with some content in 'file.xlsx'. Do you want us to try to recover as much as we can? If you trust the source of thes workbook, click Yes.". The document can be only partially recovered and information is lost.