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: