下面是关于“C#通过NPOI导入导出数据EXCEL”的完整攻略,包含以下几个部分:
- NPOI简介
- 导出Excel
- 导入Excel
- 示例说明
1. NPOI简介
NPOI是一个开源的.NET库,可以用来读写Microsoft Excel、Word和PowerPoint格式的文件。对于需要在C#中读写Excel文件的开发者来说,NPOI是一个不错的选择。使用NPOI可以极大地简化Excel读写操作。
2. 导出Excel
使用NPOI导出Excel需要做以下几个步骤:
第一步:添加NPOI引用
在Visual Studio中打开解决方案,右键单击“引用”文件夹,选择“管理NuGet程序包”,搜索“NPOI”并安装。完成后会自动在项目中添加对NPOI的引用。
第二步:编写导出代码
首先需要在代码中引入NPOI命名空间:using NPOI.SS.UserModel;
。
然后编写导出代码,示例如下:
// 创建工作簿
IWorkbook workbook = new XSSFWorkbook();
// 创建工作表
ISheet sheet = workbook.CreateSheet("Sheet1");
// 填充数据
for (int i = 0; i < 10; i++)
{
IRow row = sheet.CreateRow(i);
for (int j = 0; j < 5; j++)
{
row.CreateCell(j).SetCellValue(i * j);
}
}
// 导出Excel文件
using (var fileStream = new FileStream("Test.xlsx", FileMode.Create))
{
workbook.Write(fileStream);
}
第三步:运行导出代码
运行代码后,在程序所在目录下会生成一个名为“Test.xlsx”的Excel文件,文件中会包含填充的数据。
3. 导入Excel
使用NPOI导入Excel需要做以下几个步骤:
第一步:添加NPOI引用
同导出操作一样,在Visual Studio中打开解决方案,右键单击“引用”文件夹,选择“管理NuGet程序包”,搜索“NPOI”并安装。完成后会自动在项目中添加对NPOI的引用。
第二步:编写导入代码
在代码中引入NPOI命名空间:using NPOI.SS.UserModel;
。
然后编写导入代码,示例如下:
// 读取Excel文件
IWorkbook workbook = null;
using (var fileStream = new FileStream("Test.xlsx", FileMode.Open, FileAccess.Read))
{
workbook = new XSSFWorkbook(fileStream);
}
// 获取工作表和行列数量
var sheet = workbook.GetSheetAt(0);
int rowCount = sheet.LastRowNum + 1;
int columnCount = sheet.GetRow(0).LastCellNum;
// 读取数据
for (int i = 0; i < rowCount; i++)
{
var row = sheet.GetRow(i);
for (int j = 0; j < columnCount; j++)
{
Console.Write(row.GetCell(j).NumericCellValue + "\t");
}
Console.WriteLine();
}
第三步:运行导入代码
运行代码后,会在控制台输出所有读取到的数据。
4. 示例说明
以下是两个示例说明:
示例1:导出CSV文件
假设需要将数据导出为CSV文件,可以将导出代码修改如下:
// 声明CSV文件头
string[] csvHeaders = new string[] { "ID", "Name", "Age" };
// 创建StringBuilder对象
StringBuilder sb = new StringBuilder();
// 填充CSV文件头
sb.AppendLine(string.Join(",", csvHeaders));
// 填充数据
for (int i = 1; i <= 5; i++)
{
sb.AppendLine(string.Join(",", i, $"Name{i}", i + 20));
}
// 导出CSV文件
using (var fileStream = new FileStream("Test.csv", FileMode.Create))
{
byte[] csvBytes = Encoding.UTF8.GetBytes(sb.ToString());
fileStream.Write(csvBytes, 0, csvBytes.Length);
}
示例2:读取Excel文件并插入数据库
假设需要将导入的Excel文件数据插入到数据库中,可以将导入代码修改如下:
// 连接数据库
using (SqlConnection connection = new SqlConnection("your-connection-string"))
{
connection.Open();
// 读取Excel文件
IWorkbook workbook = null;
using (var fileStream = new FileStream("Test.xlsx", FileMode.Open, FileAccess.Read))
{
workbook = new XSSFWorkbook(fileStream);
}
// 获取工作表和行列数量
var sheet = workbook.GetSheetAt(0);
int rowCount = sheet.LastRowNum + 1;
int columnCount = sheet.GetRow(0).LastCellNum;
// 执行SQL语句插入数据库
for (int i = 1; i < rowCount; i++)
{
var row = sheet.GetRow(i);
// 生成SQL语句并执行
string sql = $"INSERT INTO [Person] (Name, Age) VALUES ('{row.GetCell(0).StringCellValue}', {row.GetCell(1).NumericCellValue})";
using (SqlCommand command = new SqlCommand(sql, connection))
{
command.ExecuteNonQuery();
}
}
}
这样就可以将Excel文件中的数据插入到数据库中了。
以上就是关于“C#通过NPOI导入导出数据EXCEL”的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#通过NPOI导入导出数据EXCEL - Python技术站