Excel DDE Commands

! https://zhuanlan.zhihu.com/p/635569763

Excel DDE Commands

連接參數

Application: Excel
Topic:
System: 整個應用。
[sheetname] 指定 worksheet。

我使用的是 .NET 組件 Specshell.NDde

		private DdeClient _ddeClient;
        public void Init()
        {
            try
            {
                _ddeClient = new DdeClient("EXCEL", "System");
                _ddeClient.Context.Encoding = System.Text.Encoding.Default;
                _ddeClient.Connect();
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
        }

	    public void Execute(string cmd, bool needEsc = false)
        {
            if (needEsc)
            {
                _ddeClient.TryExecute("[ESC]", 10);
            }
            _ddeClient.TryExecute(cmd, 5);
        }

	    public void Dispose()
        {
            try
            {
                _ddeClient?.Disconnect();
            }
            catch { }
        }

DDE commands

  • 命令大小寫不敏感(case insensitivity)
  • 命令可以帶括號,也可以不帶括號
    [paste] = [paste()]
Command 說明 Description
Application commands
[app.activate] 激活應用 activate the application
[quit] 關閉應用 quit the application
Workbook commands
[activate("WorkbookName")] 激活指定的文檔 activate a workbook
[new(1)] 新建一個 workbook new a workbook
[open("filepath.xlsx")] 打開一個 workbook open a workbook
[save.as("test1.xlsx")] 保存文檔 save as a workbook
[close(false)] 關閉文檔 close a workbook
[file.close(false)] 關閉文檔 close a workbook
Worksheet commands
[workbook.select("worksheetName")] 激活一個 worksheet activate a worksheet
[workbook.insert(1)] 新建一個 worksheet new a worksheet
[workbook.prev] 移動到上一個 worksheet move to the previous worksheet
[workbook.next] 移動到下一個 worksheet move to the next worksheet
[workbook.move("", "", 1)] 移動一個 worksheet move a worksheet
[workbook.name("Sheet1", "SheetA")] 命名一個 worksheet rename a worksheet
[workbook.delete("Sheet1")] 刪除一個 worksheet delete a worksheet
[workbook.new] 打開插入對話框 open the insert dialog
data commands
[clear] 清除當前選擇的值 clear selection values
[copy] 複製。 copy selection values
[edit.delete][1] 刪除當前選擇的單元 delete selection values
[esc] 發送一個 Escape 鍵? send the escape key?
[insert(shiftDirectionAndMode)] 插入 insert
[paste][2] 粘貼 paste
[paste("R1C1")] 粘貼到指定的單元 paste to the cells
[select("R1C1")] 選擇單元 select cells
[select("R1:R2")] 選擇行 select rows
[select("R[1]:R[1]")] 相對位置,選擇下一行 select a relative row
[select("R[1]")] 相對位置,選擇下一行 select a relative row
[formula("=formula")] 設置值 set a value
[format.font("Verdana",12)] 設置字體 set font
[patterns(1,0,3)] 設置單元格式 set format of cells
[column.width(20,"c1:c2")] 設置列寬 set width of columns
[column.width(,"c1:c2",false,1)] 隱藏/顯示列 hide/un-hide columns
[row.height(20,"r1:r2")] 設置列寬 set height of rows
[row.height(,"r1:r2",false,1)] 隱藏/顯示行 hide/un-hide rows

  1. [edit.delete]: 下方的單元會上移。 ↩︎

  2. [paste]: 支持 Range 的粘貼。 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章