在VS2017中用C#利用NOPI插件写一个类,包括两个函数,一个函数用来创建含有时间,UDS报文,是否测试通过的excel表格,另外一个函数逐行写入数据
时间: 2024-02-24 20:58:43 浏览: 63
C#利用NOPI处理Excel的代码
好的,以下是一个使用 NOPI 插件实现的 C# 类,实现了你所需的两个函数:
```csharp
using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
namespace ExcelWriter
{
class ExcelWriter
{
private IWorkbook workbook;
private ISheet sheet;
private int rowNumber;
public void CreateExcel(string filename)
{
// 创建一个新的工作簿
workbook = new XSSFWorkbook();
// 创建一个新的工作表
sheet = workbook.CreateSheet("Sheet1");
// 写入表头
IRow headerRow = sheet.CreateRow(0);
headerRow.CreateCell(0).SetCellValue("时间");
headerRow.CreateCell(1).SetCellValue("UDS报文");
headerRow.CreateCell(2).SetCellValue("是否测试通过");
// 保存工作簿
using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
{
workbook.Write(fs);
}
}
public void WriteRow(string time, string uds, bool passed)
{
// 打开 Excel 工作簿
using (FileStream fs = new FileStream(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\data.xlsx", FileMode.Open, FileAccess.ReadWrite))
{
workbook = new XSSFWorkbook(fs);
sheet = workbook.GetSheetAt(0);
// 获取当前行号
rowNumber = sheet.LastRowNum + 1;
// 写入数据
IRow dataRow = sheet.CreateRow(rowNumber);
dataRow.CreateCell(0).SetCellValue(time);
dataRow.CreateCell(1).SetCellValue(uds);
dataRow.CreateCell(2).SetCellValue(passed ? "是" : "否");
// 保存工作簿
workbook.Write(fs);
}
}
}
}
```
其中,`CreateExcel` 函数用来创建一个新的 Excel 文件,包括时间、UDS报文和是否测试通过三列;`WriteRow` 函数用来逐行写入数据到 Excel 文件中。请注意,这里使用了 NPOI 插件来操作 Excel 文件,需要通过 Visual Studio 的 NuGet 包管理器安装此插件。
阅读全文