Excel DDE Commands

2023-10-16 16:38:03 浏览数 (1)

Excel DDE Commands

连接参数

Application: Excel Topic: System: 整个应用。 [sheetname] 指定 worksheet。

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

代码语言:javascript复制
		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

[close(false)]

关闭文档

close a workbook

[file.close(false)]

关闭文档

close a workbook

[new(1)]

新建一个 workbook

new a workbook

[open("filepath.xlsx")]

打开一个 workbook

open a workbook

[save.as("test1.xlsx")]

保存文档

save as a workbook

Worksheet commands

[workbook.delete("Sheet1")]

删除一个 worksheet

delete a worksheet

[workbook.insert(1)]

新建一个 worksheet

new a worksheet

[workbook.move("", "", 1)]

移动一个 worksheet

move a worksheet

[workbook.name("Sheet1", "SheetA")]

命名一个 worksheet

rename a worksheet

[workbook.new]

打开插入对话框

open the insert dialog

[workbook.next]

移动到下一个 worksheet

move to the next worksheet

[workbook.prev]

移动到上一个 worksheet

move to the previous worksheet

[workbook.select("worksheetName")]

激活一个 worksheet

activate a worksheet

data commands

[clear]

清除当前选择的值

clear selection values

[column.width(,"c1:c2",false,1)]

隐藏/显示列

hide/un-hide columns

[column.width(20,"c1:c2")]

设置列宽

set width of columns

[copy]

复制。

copy selection values

[edit.delete]

删除当前选择的单元

delete selection values

[esc]

发送一个 Escape 键?

send the escape key?

[format.font("Verdana",12)]

设置字体

set font

[formula("=formula")]

设置值

set a value

[formula("=formula", "R1C1")]

设置单元值

set a value to a cell

[insert(shiftDirectionAndMode)]

插入

insert

[paste("R1C1")]

粘贴到指定的单元

paste to the cells

[paste]

粘贴

paste

[patterns(1,0,3)]

设置单元格式

set format of cells

[row.height(,"r1:r2",false,1)]

隐藏/显示行

hide/un-hide rows

[row.height(20,"r1:r2")]

设置列宽

set height of rows

[select("R[1]:R[1]")]

相对位置,选择下一行

select a relative row

[select("R[1]")]

相对位置,选择下一行

select a relative row

[select("R1:R2")]

选择行

select rows

[select("R1C1")]

选择单元

select cells

[undo]

撤销操作

undo

代码语言:javascript复制
 [edit.delete]
 下方的单元会上移。
 
参数: shiftDirectionAndMode
 1 - delete cells and move right
 2 - delete cells and move up
 3 - delete rows
 4 - delete columns
 [insert]
 不同的选择模式,插入方式不同。单元选择,行选择,列选择,范围选择
 
参数: shiftDirectionAndMode
 1 - cell move right
 2 - cell move down
 3 - row move down
 4 - column move right
 [paste]: 支持 Range 的粘贴。
 
 [format.font("Verdana",12,false,false,false,false,4,false,false)]
 设置字体。
 参数: (font-family, fontname, bold, italic, underline, strikethrough, color index, ?, ?)
 color index: 0 ~ 56
    color index color color     0 automatic ABC 中国   1 #000000 ABC 中国   2 #FFFFFF ABC 中国   3 #0000FF ABC 中国   4 #00FF00 ABC 中国   5 #FF0000 ABC 中国   6 #00FFFF ABC 中国   7 #FF00FF ABC 中国   8 #FFFF00 ABC 中国   9 #000080 ABC 中国   10 #008000 ABC 中国   11 #800000 ABC 中国   12 #008080 ABC 中国   13 #800080 ABC 中国   14 #808000 ABC 中国   15 #C0C0C0 ABC 中国   16 #808080 ABC 中国   17 #FF9999 ABC 中国   18 #663399 ABC 中国   19 #CCFFFF ABC 中国   20 #FFFFCC ABC 中国   21 #660066 ABC 中国   22 #8080FF ABC 中国   23 #CC6600 ABC 中国   24 #FFCCCC ABC 中国   25 #800000 ABC 中国   26 #FF00FF ABC 中国   27 #00FFFF ABC 中国   28 #FFFF00 ABC 中国   29 #800080 ABC 中国   30 #000080 ABC 中国   31 #808000 ABC 中国   32 #FF0000 ABC 中国   33 #FFCC00 ABC 中国   34 #FFFFCC ABC 中国   35 #CCFFCC ABC 中国   36 #99FFFF ABC 中国   37 #FFCC99 ABC 中国   38 #CC99FF ABC 中国   39 #FF99CC ABC 中国   40 #99CCFF ABC 中国   41 #FF6633 ABC 中国   42 #CCCC33 ABC 中国   43 #00CC99 ABC 中国   44 #00CCFF ABC 中国   45 #0099FF ABC 中国   46 #0066FF ABC 中国   47 #996666 ABC 中国   48 #969696 ABC 中国   49 #663300 ABC 中国   50 #669933 ABC 中国   51 #003300 ABC 中国   52 #003333 ABC 中国   53 #003399 ABC 中国   54 #663399 ABC 中国   55 #993333 ABC 中国   56 #333333 ABC 中国    

 [patterns(1,0,3)]
 设置单元。
 参数: (pattern, border, background color)
 

 [column.width(20,"c1:c2")]
 设置列宽。
 参数: (columnWidth, columns)) |
 
 [column.width(,"c1:c2",false,1)]
 隐藏/显示列。
 参数: (n/a, columns, ?, (1: hide, 2:un-hide))
 
 [row.height(20, "r1:r2")]
 设置列宽。
 参数: (rowHeight, rows)) |
 
 [row.height(,"r1:r2",false,1)]
 隐藏/显示行。
 参数: (n/a, columns, ?, (1: hide, 2:un-hide))
 

0 人点赞