! 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说明DescriptionApplication commands[app.activate]激活应用activate the application[quit]关闭应用quit the applicationWorkbook commands[activate("WorkbookName")]激活指定的文档activate a workbook[new(1)]新建一个 workbooknew a workbook[open("filepath.xlsx")]打开一个 workbookopen a workbook[save.as("test1.xlsx")]保存文档save as a workbook[close(false)]关闭文档close a workbook[file.close(false)]关闭文档close a workbookWorksheet commands[workbook.select("worksheetName")]激活一个 worksheetactivate a worksheet[workbook.insert(1)]新建一个 worksheetnew a worksheet[workbook.prev]移动到上一个 worksheetmove to the previous worksheet[workbook.next]移动到下一个 worksheetmove to the next worksheet[workbook.move("", "", 1)]移动一个 worksheetmove a worksheet[workbook.name("Sheet1", "SheetA")]命名一个 worksheetrename a worksheet[workbook.delete("Sheet1")]删除一个 worksheetdelete a worksheet[workbook.new]打开插入对话框open the insert dialogdata 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
- [paste]
不同的选择模式,插入方式不同。单元选择,行选择,列选择,范围选择
- 参数: shiftDirectionAndMode
1 - cell move right
2 - cell move down
3 - row move down
4 - column move right
- [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 indexcolorcolor0automaticABC 中国1#000000ABC 中国2#FFFFFFABC 中国3#0000FFABC 中国4#00FF00ABC 中国5#FF0000ABC 中国6#00FFFFABC 中国7#FF00FFABC 中国8#FFFF00ABC 中国9#000080ABC 中国10#008000ABC 中国11#800000ABC 中国12#008080ABC 中国13#800080ABC 中国14#808000ABC 中国15#C0C0C0ABC 中国16#808080ABC 中国17#FF9999ABC 中国18#663399ABC 中国19#CCFFFFABC 中国20#FFFFCCABC 中国21#660066ABC 中国22#8080FFABC 中国23#CC6600ABC 中国24#FFCCCCABC 中国25#800000ABC 中国26#FF00FFABC 中国27#00FFFFABC 中国28#FFFF00ABC 中国29#800080ABC 中国30#000080ABC 中国31#808000ABC 中国32#FF0000ABC 中国33#FFCC00ABC 中国34#FFFFCCABC 中国35#CCFFCCABC 中国36#99FFFFABC 中国37#FFCC99ABC 中国38#CC99FFABC 中国39#FF99CCABC 中国40#99CCFFABC 中国41#FF6633ABC 中国42#CCCC33ABC 中国43#00CC99ABC 中国44#00CCFFABC 中国45#0099FFABC 中国46#0066FFABC 中国47#996666ABC 中国48#969696ABC 中国49#663300ABC 中国50#669933ABC 中国51#003300ABC 中国52#003333ABC 中国53#003399ABC 中国54#663399ABC 中国55#993333ABC 中国56#333333ABC 中国
- [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))
- [edit.delete]: 下方的单元会上移。 ↩︎
- [paste]: 支持 Range 的粘贴。 ↩︎
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |