需求背景:在一些以数据为核心竞争力的行业或企业软件中,我们经常会碰到这样的需求,需要在Excel里直接拉取远程相关的业务数据,比如财汇等都提供了类似的功能,这类技术叫Excel add-ins
实现目标:在Excel中嵌入自定义工具栏,并完成远程数据拉取操作,如下图:
其中:刷新数据,拉取数据,关于这三个菜单是自定义的
开发步骤:
- 利用VC++或Delphi之类的桌面开发工具完成Excel Addins的功能开发,以Delphi为例
- 编写提取远程数据的接口,可以是Web Service或Rest接口,这里采用Rest接口
- Delphi代码编写,核心的代码片段如下:
提取Excel当前选中单元格:
function TAddInModule.CheckSelection: boolean;
var
Intf: IDispatch;
IWks: Excel2000._Worksheet;
begin
Result := ExcelApp.Workbooks.Count > 0;
if Result then begin
Intf := ExcelApp.ActiveSheet;
Intf.QueryInterface(Excel2000._Worksheet, IWks);
Result := Assigned(IWks);
end;
end;
测试单元格内容:
IRange.Cells.Value := gjkCode;
下一行单元格:
cCell.Item[2,1] := sValue;