How to set Logarithmic axis for chart in Excel document?
8 Mar 20243 minutes to read
The following code snippet shows how to set Logarithmic axis for chart in Excel document.
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
FileStream inputStream = new FileStream("InputTemplate.xlsx", FileMode.Open, FileAccess.Read);
IWorkbook workbook = application.Workbooks.Open(inputStream, ExcelOpenType.Automatic);
IWorksheet sheet = workbook.Worksheets[0];
//Create a Chart
IChartShape chart = sheet.Charts.Add();
//Set Chart Type
chart.ChartType = ExcelChartType.Column_Clustered;
//Set data range in the worksheet
chart.DataRange = sheet.Range["A1:C6"];
//Set chart value axis
IChartValueAxis valueAxis = chart.PrimaryValueAxis;
//Set IsLogScale and log base
valueAxis.IsLogScale = true;
valueAxis.LogBase = 10;
//Saving the workbook
FileStream outputStream = new FileStream("Chart.xlsx", FileMode.Create, FileAccess.Write);
workbook.SaveAs(outputStream);
//Dispose streams
outputStream.Dispose();
inputStream.Dispose();
}
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Excel2013;
IWorkbook workbook = application.Workbooks.Open("InputTemplate.xlsx", ExcelOpenType.Automatic);
IWorksheet sheet = workbook.Worksheets[0];
//Create a Chart
IChartShape chart = sheet.Charts.Add();
//Set Chart Type
chart.ChartType = ExcelChartType.Column_Clustered;
//Set data range in the worksheet
chart.DataRange = sheet.Range["A1:C6"];
//Set chart value axis
IChartValueAxis valueAxis = chart.PrimaryValueAxis;
//Set IsLogScale and log base
valueAxis.IsLogScale = true;
valueAxis.LogBase = 10;
//Saving the workbook
workbook.SaveAs("Chart.xlsx");
}
Using excelEngine As New ExcelEngine()
Dim application As IApplication = excelEngine.Excel
application.DefaultVersion = ExcelVersion.Xlsx
Dim workbook As IWorkbook = application.Workbooks.Open(InputTemplate.xlsx", ExcelOpenType.Automatic)
Dim sheet As IWorksheet = workbook.Worksheets(0)
' Create a Chart
Dim chart As IChartShape = sheet.Charts.Add()
' Set Chart Type
chart.ChartType = ExcelChartType.Column_Clustered
' Set data range in the worksheet
chart.DataRange = sheet.Range("A1:C6")
' Set chart value axis
Dim valueAxis As IChartValueAxis = chart.PrimaryValueAxis
' Set IsLogScale and log base
valueAxis.IsLogScale = True
valueAxis.LogBase = 10
' Saving the workbook
workbook.SaveAs(outputStream)
End Using