Отправка данных на лист excel с помощью DDE
Я знаю, что DDE-это старомодная устаревшая технология. Но я создаю приложение C# Windows Form для отправки данных в файл Excel для исследовательских целей. Я использую функции Win32 DDE, и ниже приведено то, что я пробовал до сих пор.
Что я уже пробовал:
[DllImport("user32.dll", EntryPoint = "DdeInitialize")] public static extern int DdeInitialize(out uint pidInst, IntPtr pfnCallback, IntPtr afCmd, IntPtr ulRes); [DllImport("user32.dll", EntryPoint = "DdeConnect")] private static extern IntPtr DdeConnect(uint idInst, IntPtr hszService, IntPtr hszTopic, IntPtr pCC); [DllImport("user32.dll", EntryPoint = "DdeCreateStringHandle")] private static extern IntPtr DdeCreateStringHandle(uint idInst, string psz, int iCodePage); public Form1() { InitializeComponent(); Process application = new Process(); application.StartInfo.FileName = @"C:\Users\xxx\Desktop\DDE_Client.xlsx"; application.Start(); uint instId; DdeInitialize(out instId, application.MainWindowHandle, IntPtr.Zero, IntPtr.Zero); IntPtr sPtr = DdeCreateStringHandle(instId, "Excel", 1004); IntPtr tPtr = DdeCreateStringHandle(instId, "Sheet1", 1004); IntPtr channel = DdeConnect(instId, sPtr, tPtr, (IntPtr)null); }
DdeConnect возвращает ненулевое значение, которое указывает на успешное соединение.
Мой вопрос:
Как отправить строку в таблицу Excel? Например, я хочу отправить "имя" в ячейку excel A1. Какую функцию DDE я должен использовать для этой задачи?