NPOI是一个开源的.NET库,用于读写Microsoft Office格式的文件,包括Excel。以下是一个基本的帮助类,用于使用NPOI操作Excel。
首先,你需要安装NPOI库。你可以通过NuGet包管理器来安装。在Visual Studio中,打开“工具”菜单,选择“NuGet包管理器”,然后选择“管理解决方案的NuGet包”。在打开的窗口中搜索NPOI并安装。
以下是一个简单的帮助类,用于读取和写入Excel文件:
csharpusing NPOI.SS.UserModel;
using NPOI.XSSF.UserModel; // For .xlsx
using NPOI.HSSF.UserModel; // For .xls
using System.IO;
public class ExcelHelper
{
public static DataTable ReadExcel(string filePath)
{
IWorkbook workbook;
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
workbook = WorkbookFactory.Create(file);
}
ISheet sheet = workbook.GetSheetAt(0); // assuming first sheet
DataTable dt = new DataTable();
IRow headerRow = sheet.GetRow(0); // assuming header row is first row
int cellCount = headerRow.LastCellNum;
for (int j = 0; j < cellCount; j++)
{
DataColumn column = new DataColumn(headerRow.GetCell(j).ToString());
dt.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = dt.NewRow();
for (int j = 0; j < cellCount; j++)
{
dataRow[j] = row.GetCell(j).ToString();
}
dt.Rows.Add(dataRow);
}
return dt;
}
public static void WriteToExcel(string filePath, DataTable dataTable)
{
var workbook = new XSSFWorkbook(); // .xlsx
var sheet = workbook.CreateSheet("Sheet1");
var headerRow = sheet.CreateRow(0);
var headerCell = headerRow.CreateCell(0);
headerCell.SetCellValue("Column1"); // set your header here
var rowNum = 1;
foreach (DataColumn column in dataTable.Columns)
{
var cell = headerRow.CreateCell(rowNum++);
cell.SetCellValue(column.ColumnName);
}
rowNum = 1;
foreach (DataRow row in dataTable.Rows)
{
var newRow = sheet.CreateRow(rowNum++);
for (int i = 0; i < row.ItemArray.Length; i++)
{
var cell = newRow.CreateCell(i);
cell.SetCellValue(row[i].ToString()); // set your value here
}
}
using (FileStream stream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
workbook.Write(stream);
}
}
}
这个帮助类提供了两个静态方法:ReadExcel和WriteToExcel。ReadExcel方法从Excel文件中读取数据并返回一个DataTable。WriteToExcel方法将DataTable中的数据写入到Excel文件中。注意,这个例子假设第一个工作表是你要读取或写入的工作表,并且假设第一行是标题行。你可能需要根据实际情况调整这些假设。
本文暂时没有评论,来添加一个吧(●'◡'●)