C#:作为日志文件插入到 Excel 中

本文关键字:插入 Excel 文件 日志 | 更新日期: 2023-09-27 18:32:42

有什么特定的方法可以为我的函数创建日志文件吗?所有这些函数都是作为测试用例。我正在使用下面的代码来添加数据。

string pathfile = @"data source location";
XLWorkbook workbook = new XLWorkbook(pathfile);
IXLWorksheet worksheet = workbook.Worksheet("Common");
worksheet.Cell("A2").Value = "1";
worksheet.Cell("B2").Value = "Test Case # 1";
worksheet.Cell("C2").Value = "1/29/2016 6:18:56 PM";
worksheet.Cell("D2").Value = "1/29/2016 6:19:56 PM";
worksheet.Cell("E2").Value = "1 minute";
workbook.Save();

现在,我每次都必须在每个函数中指定此值。还有其他更好更好的方法来创建 excel 日志文件吗?

Excel 日志文件示例

+------+-------------------+-------------------------+---------------------------+---------------+
|  ID  | Testcases No.     |        Start Time       |         End Time          |   Total Time  |  
+------+-------------------+-------------------------+---------------------------+---------------+
|  1   | Test Case # 1     |   1/29/2016 6:18:56 PM  |   1/29/2016 6:19:56 PM    |   1 minute    |  
+------+-------------------+-------------------------+---------------------------+---------------+
|  2   | Test Case # 2     |   1/29/2016 6:20:50 PM  |   1/29/2016 6:25:50 PM    |   5 minutes   |
+------+-------------------+-------------------------+---------------------------+---------------+  

程序用途:

  1. 单元测试类

  2. Nunit 运行我的应用程序

C#:作为日志文件插入到 Excel 中

作为开发人员,您应该拥有或应该构建实用程序类的项目。您可以没有的例程,甚至可以为您的项目/公司提供框架。

即密码学,电子邮件,数据访问,日志记录

这样,您的

公司或您个人可以将此项目放入您的项目中,并立即拥有丰富的功能供您使用。

我发现在这个简单的日志记录任务中使用 Excel 有点繁重

那么为什么你不使用最好的一个,即Net4Loggerhttp://www.codeproject.com/Articles/140911/log-net-Tutorial

一个很好的简单方法是简单地创建一个数据表,然后使用 closedxml 将其导出到 excel(您已经标记了,所以我假设您已经有了库)

XLWorkbook workbook = new XLWorkbook();
DataTable dt = //insert your datasource here
workbook.Worksheets.Add(dt,"WorksheetName");

参考这里

Takarii建议的替代方案。

如果您将数据存储在DataTableList<>那么使用我的免费 C# 库,您可以使用Microsoft OpenXML 库创建真正的.xlsx文件。

导出到Excel。

您只需要添加一行代码,说明数据的存储位置以及要调用 Excel 文件的内容:

List<YourLogEntryClass> listOfLogRecords = new List<YourLogEntryClass>();
. . . 
CreateExcelFile.CreateExcelDocument(listOfLogRecords, "LogFile.xlsx");

附言 一个更明智的想法可能是不要将日志条目存储在 Excel 文件中,而是使用类似 log4net 的东西来为您处理所有这些日志记录信息/错误字符串......

有什么理由不采用该代码块,并将其分解为一个单独的函数,该函数将文件位置、id 等作为参数?

例如

public void LogTest(string fileLocation, int id, float minutes)
{
    // your code 
}