C# Excel Datetable Spire.Xls 笔记

关于Excel的使用

使用第三方库 Spire

using Spire.Xls;

Excel的导入和导出

导入

//创建Workbook对象并加载Excel文档
string path="Excel路径";
Workbook workbook = new Workbook();
workbook.LoadFromFile(path, ExcelVersion.Version2013);

//获取第一张sheet
Worksheet sheet = workbook.Worksheets[0];

导出

Excel
//保存文件
workbook.SaveToFile("aa.xlsx", ExcelVersion.Version2013);
PDF
sheet.SaveToPdf(path);

单元格的处理

单元格表示

//单个单元格
sheet.Range[1, 7]
sheet.Range["A1"]
//多个单元格
sheet.Range[7, 22, 12, 28].FormulaR1C1 
sheet.Range["M4:P4"].FormulaR1C1 

赋值

sheet.Range[1, 7].Value2 = value;
sheet.Range[1, 3] = sheet.Range[1, 9];

复制

sheet.Copy(sheet.Range[4, 9, 4, 12], sheet.Range[4, 3, 4, 6], true);

公式

RC写法:以当前单元格为(0,0),向下、右为正,反之为负

//【公式】单个 V4=U4-G4
sheet.Range["V4"].FormulaR1C1 = "=U4-G4";//单个

sheet.Range[7, 22, 12, 22].FormulaR1C1 = "=RC[-1]-RC[-15]";//列
sheet.Range["M4:P4"].FormulaR1C1 = "=RC[-4]-RC[-10]";//列

宽高自适应

//设置行高、列宽为自适应(应用于整个工作表)
sheet.AllocatedRange.AutoFitRows();
sheet.AllocatedRange.AutoFitColumns();

设置边框

string border = "A4:J" + sheet.Rows.Count();
CellRange range = sheet.Range[border];
range.BorderInside(LineStyleType.Thin);
range.BorderAround(LineStyleType.Thin);

关于DateTable的处理

Excel填充DataTable

//设置range范围
CellRange range = sheet.Range[sheet.FirstRow, sheet.FirstColumn, sheet.LastRow, sheet.LastColumn];

//输出数据, 同时输出列名以及公式值
DataTable dt = sheet.ExportDataTable(range, true, true);

DataTable填充Excel

//从第一行第一列开始插入数据,true代表数据包含列名
sheet.InsertDataTable(dt, true, 1, 1);
posted @ 2021-12-03 15:31  牧绮姬  阅读(830)  评论(0)    收藏  举报