Как экспортировать данные из консольного приложения в электронную таблицу Excel - PullRequest
0 голосов
/ 08 октября 2019
//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

// У меня есть цикл, который продолжает читать обновления напряжения каждые 3 секунды

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Мне кажется, что вы ищете функцию ведения журнала, и существует множество хорошо округленных приложений / библиотек для ведения журналов, которые вам не нужно изобретать заново. Также они позаботятся о блокировке и т. Д., Так как вы постоянно пишете в файл, о котором вам нужно подумать, и он сделает это за вас.

Один из моих любимых - Serilog , который можно загрузить в виде пакета Nuget. Вы можете найти установки и базовой настройки информацию по предоставленным ссылкам. Не забудьте установить Serilog основной пакет, а также Serilog.Sinks.File, так как вы хотите войти в файл.

Вот очень простой пример того, как его использовать, но, пожалуйста, прочитайте документацию, и она дает тоннывариантов может пригодиться для вас. Я создал цикл for для имитации ваших своевременных данных, но идея осталась прежней.

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));
    }
}

Первая строка создает экземпляр регистратора, вам нужно сделать это только один раз. Когда вы вызываете 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

0 голосов
/ 08 октября 2019

Вы можете легко записать свои данные в файл Excel с помощью библиотеки ClosedXML, вот ссылка: https://github.com/closedxml/closedxml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...