Excel的数据处理功能非常强大,因此在日常工作中,我们经常需要将数据从数据库或Datatable等数据源导入到Excel文档来进行数据分析或运算,有时候又需要将Excel文档中的数据导出到数据库或者Datatable来读取数据。
网上关于Excel数据导入和导出的方案比较多,比如使用Excel Interop,但是这种方式比较复杂而且要求运行环境安装Excel。本文将介绍一种简单的方式 - 使用免费Excel组件Free Spire.XLS将数据从Datatable导入到Excel文档以及将Excel文档的数据导出到Datatable,该方案不依赖Microsoft Excel。
在使用以下代码前,请先下载Free Spire.XLS并引用对应的dll文件到项目中。
Datatable导入Excel文档
将Datatable导入到Excel文档需要使用Worksheet.InsertDataTable方法。
//创建一个Excel文档
Workbook workbook = new Workbook();
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//将datatable导入到工作表,数据从工作表的第一行第一列开始写入
sheet.InsertDataTable(datatable, true, 1, 1);
//设置自适应列宽
sheet.AllocatedRange.AutoFitColumns();
//设置第一行的填充颜色
sheet.Rows[0].Style.Color = Color.Yellow;
//保存文档
workbook.SaveToFile("ImportToExcel.xlsx",ExcelVersion.Version2013);
Excel文档导出Datatable
使用Worksheet.ExportDataTable方法可以将Excel文档的数据导出到datatable。
//创建一个datatable
DataTable datatable = new DataTable();
//载入Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("ImportToExcel.xlsx");
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//将第一个工作表的数据导出到datatable中
datatable = sheet.ExportDataTable();
this.dataGridView1.DataSource = datatable;