Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将数据从控制台应用程序导出到excel电子表格_C#_Excel_Console_Export - Fatal编程技术网

C# 如何将数据从控制台应用程序导出到excel电子表格

C# 如何将数据从控制台应用程序导出到excel电子表格,c#,excel,console,export,C#,Excel,Console,Export,//我有一个循环,每3秒继续读取电压更新您可以使用ClosedXML库轻松地将数据写入excel文件,以下是链接: 在我看来,您似乎在寻找一种日志功能,而且有大量完善的日志应用程序/库,您不需要重新发明。此外,他们还将负责锁定等,因为您不断地向文件中写入您需要考虑的内容,它将为您完成这项工作 我最喜欢的一个是它,你可以作为Nuget包下载。您可以在提供的链接上查找和提供信息。请记住安装Serilog主软件包以及Serilog.Sinks.File,因为您希望登录到一个文件 这里有一个关于如何使用

//我有一个循环,每3秒继续读取电压更新

您可以使用ClosedXML库轻松地将数据写入excel文件,以下是链接:

在我看来,您似乎在寻找一种日志功能,而且有大量完善的日志应用程序/库,您不需要重新发明。此外,他们还将负责锁定等,因为您不断地向文件中写入您需要考虑的内容,它将为您完成这项工作

我最喜欢的一个是它,你可以作为
Nuget
包下载。您可以在提供的链接上查找和提供信息。请记住安装
Serilog
主软件包以及
Serilog.Sinks.File
,因为您希望登录到一个文件

这里有一个关于如何使用它的基本示例,但请通读文档,它提供了大量的选项,可能对您有用。我已经创建了一个for循环来模拟您的实时数据,但想法仍然是一样的

//First start off with a reset state
myDmm.IO.Clear(); //Send a device clear first to stop any measurements in process
myDmm.WriteString("*RST", true); //Reset the device
myDmm.WriteString("*IDN?", true); //Get the IDN string                
string IDN = myDmm.ReadString();
Console.WriteLine(IDN); //report the DMM's identity

//Configure for DCV 100V range, 100uV resolution
myDmm.WriteString("CONF:VOLT:DC 10, 0.1", true);
myDmm.WriteString("Read?", true);
//DmmClass.CheckDMMError(myDmm); //Check if the DMM has any errors

string DCVResult = myDmm.ReadString();
Console.WriteLine("DC Reading = " + DCVResult); //report the DCV reading
static void Main(字符串[]args)
{
Log.Logger=new LoggerConfiguration().WriteTo.File(“voltage.Log”).CreateLogger();
var line=“IDN={0},DCV={1}”;
var rnd=新随机数();
对于(int i=0;i<100;i++)
{
var idn=rnd.Next(01100);
var dcv=rnd.NextDouble();
日志信息(字符串格式(行、idn、dcv));
}
}
第一行创建记录器的实例,您只需执行一次。调用
Log.Information()
时,它会打开同一个文件并写入一行,然后将其关闭。这具有记录时间的额外优势。以下是一个示例输出:

2019-10-08 10:46:28.697-07:00[INF]IDN=57,DCV=0.985960515209455

2019-10-08 10:46:28.717-07:00[INF]IDN=88,DCV=0.393538948331745

2019-10-08 10:46:28.717-07:00[INF]IDN=27,DCV=0.321643328443935

2019-10-08 10:46:28.717-07:00[INF]IDN=35,DCV=0.99525734735432


您的问题很不清楚,我们需要更多的上下文。您的代码似乎正在与外部设备通信。这和Excel有什么关系?好的,现在我可以使用visual studio的控制台应用程序查看电压读数,比如5.08伏等等。。但我也希望能够将这些数据记录到excel电子表格中我正在与DMM通信,只希望能够像现在一样在控制台应用程序中查看电压读数,并将数据导出到excel日志抱歉,我是一个新手
static void Main(string[] args)
{
    Log.Logger = new LoggerConfiguration().WriteTo.File("voltage.log").CreateLogger();

    var line = "IDN = {0}, DCV = {1}";

    var rnd = new Random();
    for (int i = 0; i < 100; i++)
    {
        var idn = rnd.Next(0, 100);
        var dcv = rnd.NextDouble();

        Log.Information(string.Format(line, idn, dcv));
    }
}