C# Excel에 값 쓰기(write) (2) / SendKeys 사용하기

2023. 3. 31. 19:14개발 일기/C#

<프로그램 목적>
: 엑셀의 마우스로 활성화(선택) 한 곳에, 특정 데이터 값을 지속적으로 쓰는 것
(실제로는 센서를 연결하지만, 카운트 값으로 대체하였음)

*** 엑셀 라이센스 필요없는 방법입니다. ***

* 엑셀 접근이 필요하다면 → https://reta98.tistory.com/21

 

특징 정리
  1. C#에서 엑셀 파일을 access하고 있지 않다. (C# 실행 프로그램과 별개 동작)
  2. 프로그램 실행과 달리 파일을 따로 열어야 한다.
  3. Excel 라이센스가 없어도 동작한다.
  4. window에 active 된 곳에 send하기에 메모장이나 다른 프로그램도 동일하게 동작한다.

 

코드

* 포인트: SendKeys.Send();

using System;
using System.Windows.Forms;

namespace Excel_Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

		int cnt = 0;

		private void input_value()
		{
			SendKeys.Send("{ESC}");
			SendKeys.Send(cnt++.ToString());
		}

        private void tm_Tick(object sender, EventArgs e)
		{
			input_value();
		}

        private void btn_start_Click(object sender, EventArgs e)
        {
			tm.Start();
		}

        private void btn_stop_Click(object sender, EventArgs e)
        {
			tm.Stop();
		}
    }
}

* ESC 외에도 Ctrl+A 후 작성 등 활용하면 됩니다.

 

동작

왼쪽: 프로그램 / 오른쪽: 엑셀

 

0.5초마다 count 올려서 쓰기

Sendkeys Class 사이트:

https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys?view=windowsdesktop-7.0 

 

SendKeys Class (System.Windows.Forms)

Provides methods for sending keystrokes to an application.

learn.microsoft.com

 

'개발 일기 > C#' 카테고리의 다른 글

C# Excel 파일 Control (open, save, write) 하기 (1)  (0) 2023.03.30