在 Visual Studio C# 中写入现有的 CSV 或 Excel 文件

本文关键字:CSV 文件 Excel Studio Visual | 更新日期: 2023-09-27 18:33:29

我希望能够不断更新CSV或Excel xlsx文件,也许真的使用NPOI或其他任何东西。我只需要完成以下工作。

我的代码示例如下,我正在捕获计时。代码正在使用硒。每次运行测试时,我都需要将这些计时导出到现有的 excel/csv 文件中,该文件将存储在我的 C: 驱动器上。我不想覆盖现有单元格,而是想每次在下一个空白行添加新计时。

我现有的 excel 文件只有 3 个标题列。这些将标题为"测试日期","测试名称","经过的时间"

        [Test]
    public void TimeForWebPagesToLoad()
    {
        IWebDriver driver = new FirefoxDriver();
        DateTime currentDateTime = DateTime.Now;
        var dateTime = currentDate.ToString();
        var sw1 = Stopwatch.StartNew();
        driver.Navigate().GoToUrl("http://www.google.com");
        sw1.Stop();
        Console.WriteLine("Time for Google to load is {0}", sw1.Elapsed);
        var sw2 = Stopwatch.StartNew();
        driver.Navigate().GoToUrl("http://www.facebook.com");
        sw2.Stop();
        Console.WriteLine("Time for Facebook to load is {0}", sw2.Elapsed);
        /*TODO code to write the Elapsed time into excel
        WriteToExcelMethod(dateTime, "Google Perf Test", sw1.Elapsed)
        WriteToExcelMethod(dateTime, "Facebook Perf Test", sw2.Elapsed)
        */
        Assert.IsTrue(sw1.Elapsed < TimeSpan.FromSeconds(10));
        Assert.IsTrue(sw2.Elapsed < TimeSpan.FromSeconds(10));
    }

在 Visual Studio C# 中写入现有的 CSV 或 Excel 文件

这样的东西会起作用:

public static void WriteToExcelMethod(DateTime dt, string str, TimeSpan ts)
{
    string path = @"c:'temp'MyTest.csv";
    string line = String.Format(@"""{0}"",""{1}"",""{2}""", dt, str, ts);
    using (StreamWriter sw = File.AppendText(path))
    {
        sw.WriteLine(line);
    }
}

使用 CSV 文件:

    using (StreamWriter sw = new StreamWriter("pippo.csv", true))
    {
        sw.WriteLine(string.Format("{0};{1};{2}", DateTime.Now, "Google Perf Test", ws1.Elapsed));
        sw.WriteLine(string.Format("{0};{1};{2}", DateTime.Now, "Facebook Perf Test", ws2.Elapsed));
    }

您也可以使用文件类这是一个可以使用的小片段

        var csv = new StringBuilder();
        var newLine = string.Format("{0},{1},{2}", firstValue, secondValue, thirdValue);
        csv.AppendLine(newLine);
        File.AppendAllText(fileUrl, csv.ToString());

我希望这应该对你有用。