chenbingjy 发表于 2024-10-23 13:53:03

c#每秒往excel里写一组数据的问题

代码:

using System;
using System.Timers;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

class Program
{
    private static Timer _timer;
    private static Application _excelApp;
    private static Workbook _workbook;
    private static _Worksheet _worksheet;
    private static int _row = 1; // 初始行号

    static void Main(string[] args)
    {
      // 初始化Excel应用程序
      _excelApp = new Application();
      _excelApp.Visible = true; // 如果需要可见,否则设置为false
      _workbook = _excelApp.Workbooks.Add();
      _worksheet = (_Worksheet)_workbook.Sheets;

      // 设置定时器
      _timer = new Timer(1000); // 1000毫秒 = 1秒
      _timer.Elapsed += OnTimedEvent;
      _timer.AutoReset = true;
      _timer.Enabled = true;

      Console.WriteLine("按Enter键退出程序...");
      Console.ReadLine();

      // 清理资源
      _timer.Stop();
      _timer.Dispose();

      // 关闭Excel并释放资源
      Marshal.ReleaseComObject(_worksheet);
      Marshal.ReleaseComObject(_workbook);
      _excelApp.Quit();
      Marshal.ReleaseComObject(_excelApp);

      GC.Collect();
      GC.WaitForPendingFinalizers();
    }

    private static void OnTimedEvent(Object source, ElapsedEventArgs e)
    {
      // 生成随机数据
      Random rand = new Random();
      int randomValue = rand.Next(1, 100);

      // 写入数据到Excel
      _worksheet.Cells = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
      _worksheet.Cells = randomValue;

      // 更新行号
      _row++;
    }
}

这是文心一言自动生成的,运行没提示错误,可是找不到excel文件,也不知道EXCEL文件的名字。
请高手指教,谢谢

ibcadmin 发表于 2024-10-24 13:50:59

先把下面这块代码屏蔽掉看看

// 关闭Excel并释放资源
      Marshal.ReleaseComObject(_worksheet);
      Marshal.ReleaseComObject(_workbook);
      _excelApp.Quit();
      Marshal.ReleaseComObject(_excelApp);

      GC.Collect();
      GC.WaitForPendingFinalizers();


也可以看这篇教程
ASP.NET操作Excel
http://www.ibcibc.com/thread-12068-1-1.html
(出处: IBC编程社区-C#论坛-C#教程,.NET教程-.NET源码)







页: [1]
查看完整版本: c#每秒往excel里写一组数据的问题