in version 10.5.7 of Spire XLS you cannot generate charts with float values less than 1
- Code: Select all
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
//Initailize worksheet
workbook.CreateEmptySheets(1);
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Chart data";
sheet.GridLinesVisible = false;
//Writes chart data
CreateChartData(sheet);
CreateChartData1(sheet);
//Add a new chart worsheet to workbook
Chart chart = sheet.Charts.Add();
chart.ChartType = ExcelChartType.Line;
//Set region of chart data
chart.DataRange = sheet.Range["A1:E3"];
//Set position of chart
chart.LeftColumn = 1;
chart.TopRow = 6;
chart.RightColumn = 11;
chart.BottomRow = 29;
//chart.PrimaryCategoryAxis.Font.IsBold = true;
//chart.PrimaryCategoryAxis.TitleArea.IsBold = true;
chart.PrimaryValueAxis.HasMajorGridLines = false;
//chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90;
chart.PrimaryValueAxis.MinValue = 0;
//chart.PrimaryValueAxis.TitleArea.IsBold = true;
foreach (var cs in chart.Series)
{
cs.Format.Options.IsVaryColor = true;
cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
}
chart.Legend.Delete();
//Add a new chart worsheet to workbook
Chart chart1 = sheet.Charts.Add();
chart1.ChartType = ExcelChartType.BarClustered;
//Set region of chart data
chart1.DataRange = sheet.Range["L1:P3"];
//Set position of chart
chart1.LeftColumn = 12;
chart1.TopRow = 6;
chart1.RightColumn = 22;
chart1.BottomRow = 29;
//chart1.PrimaryCategoryAxis.Font.IsBold = true;
//chart1.PrimaryCategoryAxis.TitleArea.IsBold = true;
chart1.PrimaryValueAxis.HasMajorGridLines = false;
//chart1.PrimaryValueAxis.TitleArea.TextRotationAngle = 90;
chart1.PrimaryValueAxis.MinValue = 0;
//chart1.PrimaryValueAxis.TitleArea.IsBold = true;
foreach (var cs in chart1.Series)
{
cs.Format.Options.IsVaryColor = true;
cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
}
chart1.PlotArea.Fill.Visible = false;
chart1.Legend.Delete();
workbook.SaveToFile("Sample.xls", ExcelVersion.Version97to2003);
ExcelDocViewer(workbook.FileName);
}
private static void CreateChartData(Worksheet sheet)
{
sheet.Range["A1"].Value = "";
sheet.Range["A2"].Value = "Test1";
sheet.Range["A3"].Value = "Test2";
sheet.Range["B1"].Value = "Jan";
sheet.Range["B2"].Value = "0,33";
sheet.Range["B3"].Value = "0,23";
sheet.Range["C1"].Value = "Feb";
sheet.Range["C2"].Value = "0,75";
sheet.Range["C3"].Value = "0,29";
sheet.Range["D1"].Value = "Mar";
sheet.Range["D2"].Value = "0,77";
sheet.Range["D3"].Value = "0,69";
sheet.Range["E1"].Value = "Apr";
sheet.Range["E2"].Value = "0,80";
sheet.Range["E3"].Value = "#N/A";
//Border
sheet.Range["A1:E3"].Style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;
sheet.Range["A1:E3"].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;
sheet.Range["A1:E3"].Style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;
sheet.Range["A1:E3"].Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;
}
private static void CreateChartData1(Worksheet sheet)
{
sheet.Range["L1"].Value = "";
sheet.Range["L2"].Value = "Test2";
sheet.Range["L3"].Value = "Test1";
sheet.Range["M1"].Value = "Jan";
sheet.Range["M2"].Value = "";
sheet.Range["M3"].Value = "0,23";
sheet.Range["N1"].Value = "Feb";
sheet.Range["N2"].Value = "0,75";
sheet.Range["N3"].Value = "0,29";
sheet.Range["O1"].Value = "Mar";
sheet.Range["O2"].Value = "0,77";
sheet.Range["O3"].Value = "0,69";
sheet.Range["P1"].Value = "Apr";
sheet.Range["P2"].Value = "";
sheet.Range["P3"].Value = "0,72";
//Border
sheet.Range["L1:P3"].Style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;
sheet.Range["L1:P3"].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;
sheet.Range["L1:P3"].Style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;
sheet.Range["L1:P3"].Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;
}
private static void ExcelDocViewer(string fileName)
{
try
{
System.Diagnostics.Process.Start(fileName);
}
catch { }
}
}
Thank you for your work
Thomas