在vs2017中用C#写两个类,一个类利用NPOI插件输出excel的测试报告,报告包含时间参数和UDS报文,以及判断是否测试通过,另外一个类传入第一个类所需的数据包括当前时间,UDS22协议报文,判断UDS22报文是否满足协议,以指针方式传入到第一个类中输出excel
时间: 2024-01-11 13:05:30 浏览: 95
C#Winform使用NPOI生成excel文件
好的,让我来回答你的问题。
首先,你需要安装NPOI插件。可以在Visual Studio 2017的NuGet包管理器中搜索并安装NPOI。
然后,你需要创建两个类,一个是用于输出excel测试报告的类,另一个是用于传入数据的类。这里给出两个简单的示例:
```csharp
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
public class ExcelReport
{
public void Generate(string time, string udsMessage, bool isPassed)
{
// 创建Excel工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建Excel工作表
ISheet sheet = workbook.CreateSheet("Test Report");
// 创建Excel行
IRow row = sheet.CreateRow(0);
// 创建Excel单元格
ICell cell = row.CreateCell(0);
// 设置单元格值
cell.SetCellValue("Time");
// 创建Excel单元格
cell = row.CreateCell(1);
// 设置单元格值
cell.SetCellValue("UDS Message");
// 创建Excel单元格
cell = row.CreateCell(2);
// 设置单元格值
cell.SetCellValue("Is Passed");
// 创建Excel行
row = sheet.CreateRow(1);
// 创建Excel单元格
cell = row.CreateCell(0);
// 设置单元格值
cell.SetCellValue(time);
// 创建Excel单元格
cell = row.CreateCell(1);
// 设置单元格值
cell.SetCellValue(udsMessage);
// 创建Excel单元格
cell = row.CreateCell(2);
// 设置单元格值
cell.SetCellValue(isPassed ? "Yes" : "No");
// 保存Excel文件
using (FileStream stream = new FileStream("TestReport.xlsx", FileMode.Create))
{
workbook.Write(stream);
}
}
}
public class UDSMessage
{
public string Time { get; set; }
public string Message { get; set; }
public bool IsUDS22()
{
// 判断UDS22协议报文是否满足协议
// 这里省略具体实现
return true;
}
}
```
第一个类ExcelReport包含了一个Generate方法,用于生成测试报告。该方法接受三个参数,分别是时间参数time、UDS报文udsMessage和测试结果isPassed。该方法使用NPOI插件创建一个Excel工作簿,并在工作簿中创建一个名为"Test Report"的工作表。然后将时间、UDS报文和测试结果写入到工作表中,并保存Excel文件。
第二个类UDSMessage包含了一个Time属性和一个Message属性,分别表示时间和UDS报文。该类还包含了一个IsUDS22方法,用于判断UDS22协议报文是否满足协议。
接下来,你需要创建一个测试类,用于测试这两个类的功能。示例代码如下:
```csharp
public class Test
{
public static void Main()
{
UDSMessage message = new UDSMessage();
message.Time = DateTime.Now.ToString();
message.Message = "UDS22 message";
bool isPassed = message.IsUDS22();
ExcelReport report = new ExcelReport();
report.Generate(message.Time, message.Message, isPassed);
}
}
```
该测试类首先创建一个UDSMessage对象,设置时间和UDS报文属性,并调用IsUDS22方法判断UDS报文是否满足协议。然后创建一个ExcelReport对象,调用Generate方法生成测试报告。
最后,你需要将这些类和测试类放在同一个命名空间中,并编译运行测试类,即可生成测试报告。注意,你需要确保你的项目引用了NPOI插件。
阅读全文