Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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 - Fatal编程技术网

C# 修改数据时自动从excel读取数据

C# 修改数据时自动从excel读取数据,c#,excel,C#,Excel,我正在开发一个C#应用程序,从Excel文件中读取数据。该文件是从另一个应用程序更新的。每次修改Excel文件时,我都需要执行我的C#代码,从中读取数据并处理数据 我搜索并找到了从Excel读取数据的代码 当Excel文件被修改时,是否有任何方法可以执行我的c代码? (比如安排作业或类似的事情)您可以使用FileSystemWatcher。 它可以在更新文件时触发事件 文件更改监视器类 如果您不想使用文件更改监视器类,可以使用以下代码 在下面的代码中,我在连续循环中每次检查上次文件修改日期,如

我正在开发一个
C#
应用程序,从
Excel
文件中读取数据。该文件是从另一个应用程序更新的。每次修改
Excel
文件时,我都需要执行我的
C#
代码,从中读取数据并处理数据

我搜索并找到了从
Excel
读取数据的代码

Excel
文件被修改时,是否有任何方法可以执行我的
c
代码?
(比如安排作业或类似的事情)

您可以使用FileSystemWatcher。 它可以在更新文件时触发事件

文件更改监视器类
如果您不想使用
文件更改监视器类
,可以使用以下代码

在下面的代码中,我在连续循环中每次检查
上次文件修改日期
,如果发现
日期
不同,您可以引发一个事件来处理该更改,如果您想停止检查文件,您可以将全局设置为false的
m\u isToKeepChecking


. 这会有帮助,如果你想使用cachingif你不想使用缓存,你可以始终有一个低优先级的线程,连续读取最后一个文件修改日期,如果日期更改,那么你可以引发一个事件?
Thread thr = new Thread((new ThreadStart(() => CheckFile())));
thr.Start();

bool m_isToKeepChecking = true;
private void CheckFile()
{
    DateTime previousTime = DateTime.Now;
    while(m_isToKeepChecking)
    {
        DateTime currTime = File.GetLastWriteTime("some Path");
        if(currTime >previousTime)
        {
           previousTime = currTime;
           //Raise your event to handle the change;
        }
    }
}