VS使用NPOI库 C#创建EXCEL,写入传入的时间和data,PASS,FAIL,在写入PASS和FAIL时,判断写入的为PASS通过则填入PASS,所在单元格背景颜色变为绿,FAIL时写入FAIL字符串所在单元格背景颜色为红色,并且EXCEL设置单元格长度并可以自动换行
时间: 2024-04-19 14:27:10 浏览: 230
你可以使用NPOI库来创建EXCEL并实现你所描述的功能。下面是一个示例代码,展示了如何根据传入的时间和data来写入PASS或FAIL,并设置相应的背景颜色和单元格格式。
```csharp
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
// 创建工作簿
IWorkbook workbook = new XSSFWorkbook();
// 创建工作表
ISheet sheet = workbook.CreateSheet("Sheet1");
// 设置列宽自动换行
ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.WrapText = true;
// 设置PASS单元格样式(绿色背景)
ICellStyle passCellStyle = workbook.CreateCellStyle();
passCellStyle.FillForegroundColor = IndexedColors.LightGreen.Index;
passCellStyle.FillPattern = FillPattern.SolidForeground;
passCellStyle.WrapText = true;
// 设置FAIL单元格样式(红色背景)
ICellStyle failCellStyle = workbook.CreateCellStyle();
failCellStyle.FillForegroundColor = IndexedColors.Red.Index;
failCellStyle.FillPattern = FillPattern.SolidForeground;
failCellStyle.WrapText = true;
// 写入时间和data
DateTime time = DateTime.Now;
string data = "sample data";
IRow row = sheet.CreateRow(0);
ICell timeCell = row.CreateCell(0);
ICell dataCell = row.CreateCell(1);
timeCell.SetCellValue(time.ToString());
dataCell.SetCellValue(data);
// 判断写入的为PASS还是FAIL,并设置对应的样式
string result = "PASS"; // 或者 "FAIL"
if (result == "PASS")
{
dataCell.CellStyle = passCellStyle;
}
else if (result == "FAIL")
{
dataCell.CellStyle = failCellStyle;
}
// 设置列宽自动调整
sheet.AutoSizeColumn(0);
sheet.AutoSizeColumn(1);
// 保存EXCEL文件
using (FileStream fs = new FileStream("sample.xlsx", FileMode.Create))
{
workbook.Write(fs);
}
```
在上面的示例代码中,我们首先创建了一个工作簿(`workbook`),然后创建了一个工作表(`sheet`)。接下来,我们定义了三种不同的单元格样式:默认样式(`cellStyle`)、PASS样式(`passCellStyle`)和FAIL样式(`failCellStyle`)。然后,我们创建了一个行(`row`)并在其中创建了两个单元格(`timeCell`和`dataCell`)。根据传入的结果,我们将对应的样式应用于`dataCell`。最后,我们设置了列宽自动调整并将工作簿保存为一个文件(例如,`sample.xlsx`)。
请根据你的具体需求进行适当的修改。希望这可以帮助到你!
阅读全文