```csharp
static void Main(string[] args)
{
//实列化一个excel对象
Workbook workbook = new Workbook();
//删除所有工作簿
workbook.Worksheets.RemoveAt(0);
//添加一个新的工作噗
int index = workbook.Worksheets.Add();
//修改新添加的工作簿的名称
workbook.Worksheets[index].Name = "Sheet1";
//获取新加工作簿的名称
Cells cell = workbook.Worksheets[index].Cells;
//给第一个单元格赋值(A1)
cell[0, 0].PutValue("名称");
//以下是填充数据为生成图表做准备
cell[0, 1].PutValue("单价");
cell[1, 0].PutValue("苹果");
//想是数字类型就直接输入数字 不然生成图表有问题
cell[1, 1].PutValue(20);
cell[2, 0].PutValue("香蕉");
cell[2, 1].PutValue(30);
//调用生成二维柱状的方法
test.TestColumnCharts(workbook);
//调用生成二维饼图的方法
test.TestPieCharts(workbook);
cell[5, 0].PutValue("1");
cell[6, 0].PutValue("2");
//插入公式
cell[7, 0].Formula="=A6+A7";
//这也是一种获取单元格的方式 区别暂时不理解
var ss = workbook.Worksheets[index].Cells[CellsHelper.CellIndexToName(8,0)];
//添加值
ss.PutValue("帅");
//合并单元格 表示第1行 第3列(这就找到了一个单元格) 合并单元格开始的第1行(单元格就要算一行)第5列 (这就定义了一个范围)
cell.Merge(0,2,1,5);
//单元格自适应宽度
workbook.Worksheets[index].AutoFitColumns();
//获取单元格的名称
string value = cell[0, 0].StringValue;
//保存的路径
string file = "C:\\Users\\new\\Desktop\\" + "test.xlsx";
//保存上面的修改
workbook.Save(file);
//打开文件(测试看效果方便)
System.Diagnostics.Process.Start("explorer.exe", file);
}
public static void TestColumnCharts(Workbook workbook)
{
//实列化一个图表类型
var charts = workbook.Worksheets[0].Charts;
//添加图表 图片类型 左上角开始的开始坐标到右下脚结束的坐标 (D4-O27)
var index = charts.Add(ChartType.Column, 3, 3, 27, 15);
//选取图表的数据区域
var chartRange = $"{CellsHelper.CellIndexToName(1, 1)}:{CellsHelper.CellIndexToName(2, 1)}";
//选取图表的数据区域
charts[index].NSeries.Add(chartRange, true);
//展示的每个列的说明标签
charts[index].NSeries.CategoryData = $"{CellsHelper.CellIndexToName(1, 0)}:{CellsHelper.CellIndexToName(2, 0)}";
for (int i = 0; i < charts[index].NSeries.Count; i++)
{
//设置这个图的名称
charts[index].NSeries[i].Name = $"={CellsHelper.CellIndexToName(0, i + 1)}";
//是否显示数据标签
charts[index].NSeries[i].DataLabels.ShowValue = true;
//数据标签的对其方式
charts[index].NSeries[i].DataLabels.Position = LabelPositionType.OutsideEnd;
}
}
public static void TestPieCharts(Workbook workbook)
{
//实列化一个图表类型
var charts = workbook.Worksheets[0].Charts;
//添加图表 图片类型 左上角开始的开始坐标到右下脚结束的坐标 (D4-O27)
var index = charts.Add(ChartType.Pie, 3, 3, 27, 15);
//选取图表的数据区域
var chartRange = $"{CellsHelper.CellIndexToName(1, 1)}:{CellsHelper.CellIndexToName(2, 1)}";
//选取图表的数据区域
charts[index].NSeries.Add(chartRange, true);
//展示的每个列的说明标签
charts[index].NSeries.CategoryData = $"{CellsHelper.CellIndexToName(1, 0)}:{CellsHelper.CellIndexToName(2, 0)}";
for (int i = 0; i < charts[index].NSeries.Count; i++)
{
//是否显示数据标签
charts[index].NSeries[i].DataLabels.ShowValue = true;
//数据标签的对其方式
charts[index].NSeries[i].DataLabels.Position = LabelPositionType.OutsideEnd;
}
}