我期待提取每个单元格的文本在给定的范围在Delphi使用OLE自动化7.掌握的Excel
刚才我有一个Excel电子表格德尔福OLE自动化的文字,而不是价值功能(假设该工作簿已经打开),从工作表中选择一个范围,并填充使用.Value2功能Variant数组
function GetExcelRange(const AWorkbookIndex: integer; const AWorksheetIndex: integer; const firstCol, lastCol, firstRow, lastRow: integer): Variant;
var
AWorkbook, ARange: OleVariant;
begin
Result := Unassigned;
if not VarIsEmpty(ExcelApp) then
begin
if ExcelApp.Workbooks.Count >= AWorkbookIndex then
begin
AWorkbook := ExcelApp.Workbooks[AWorkbookIndex];
try
if AWorkbook.Worksheets.Count >= AWorksheetIndex then
begin;
ARange := AWorkbook.WorkSheets[AWorksheetIndex].Range[AWorkbook.WorkSheets[AWorksheetIndex].Cells[firstRow, firstCol],
AWorkbook.WorkSheets[AWorksheetIndex].Cells[lastRow, lastCol]];
Result := ARange.Value2;
end;
finally
AWorkbook := Unassigned;
ARange := Unassigned;
end;
end;
end;
end;
我会想到的是我可以改变路线是Result := ARange.Text
但它返回一个空对象。
当Ole对象处于活动状态时,我宁愿不迭代每个单元格,并将整个范围的文本粘贴到数组中,就像我在上面做的那样。
+1,但是读完你的最后一句话,这个问题实际上是重复的吗? :-D – 2013-03-06 07:14:49