开发手册 欢迎您!
软件开发者资料库

.NET(C#) 使用ExcelLibrary读取Excel(.xls,.xlsx)文件示例代码(不用安装Office)

ExcelLibrary是一个比较精致的Excel读写组件,由国人开发的。可以读写 xls 和 xlsx 格式的 Excel。支持简单的公式,可插入图片,对于格式的设置也不是很丰富,可设置单元格宽度,数据格式化显示。对字体,前景、背景色进行设置是它的局限性。虽比不上NPOI,但作为小巧的用来读写纯数据内容的 Excel也是很高效的。本文主要介绍一下.NET(C#)中,,使用ExcelLibrary读取Excel(.xls,.xlsx)文件数据的方法,以及相关的示例代码,并且可以不安装Microsoft Office软件。

1、安装引用ExcelLibrary

通过NuGet获取ExcelLibrary和手动引用

1)使用Nuget管理控制台

ExcelLibrary集成到项目中的最简单方法是使用NuGet。您可以通过打开包管理器控制台(PM)并键入以下语句来安装ExcelLibrary

Install-Package ExcelLibrary

2)使用Nuget图形管理器

使用Nuget的界面的管理器搜索"ExcelLibrary"=> 找到点出点击"安装"

相关文档VS(Visual Studio)中Nuget的使用

手动下载https://code.google.com/archive/p/excellibrary/downloads

2、使用ExcelLibrary读取Excel示例代码

var workbook = Workbook.Load("spreadsheet.xls");var worksheet = workbook.Worksheets[0]; // assuming only 1 worksheetvar cells = worksheet.Cells;var dataTable = new DataTable("datatable");// add columnsdataTable.Columns.Add("column1");dataTable.Columns.Add("column2");...// add rowsfor (int rowIndex = cells.FirstRowIndex + 1; rowIndex <= cells.LastRowIndex; rowIndex++){    var values = new List();    foreach(var cell in cells.GetRow(rowIndex))    {        values.Add(cell.Value.StringValue);    }    dataTable.LoadDataRow(values.ToArray(), true);}

或者

//create new xls filestring file = "C:\newdoc.xls";Workbook workbook = new Workbook(); Worksheet worksheet = new Worksheet("First Sheet"); worksheet.Cells[0, 1] = new Cell((short)1); worksheet.Cells[2, 0] = new Cell(9999999); worksheet.Cells[3, 3] = new Cell((decimal)3.45); worksheet.Cells[2, 2] = new Cell("Text string"); worksheet.Cells[2, 4] = new Cell("Second string"); worksheet.Cells[4, 0] = new Cell(32764.5, "#,##0.00"); worksheet.Cells[5, 1] = new Cell(DateTime.Now, @"YYYY-MM-DD"); worksheet.Cells.ColumnWidth[0, 1] = 3000; workbook.Worksheets.Add(worksheet); workbook.Save(file);// open xls fileWorkbook book = Workbook.Load(file);Worksheet sheet = book.Worksheets[0];// traverse cellsforeach (Pair, Cell> cell in sheet.Cells){     dgvCells[cell.Left.Right, cell.Left.Left].Value = cell.Right.Value;}// traverse rows by Indexfor (int rowIndex = sheet.Cells.FirstRowIndex; rowIndex <= sheet.Cells.LastRowIndex; rowIndex++){    Row row = sheet.Cells.GetRow(rowIndex);     for (int colIndex = row.FirstColIndex; colIndex <= row.LastColIndex; colIndex++)    {        Cell cell = row.GetCell(colIndex);    }}

ExcelLibrary源码https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/excellibrary/source-archive.zip