Delphi RIO / Excel 2016. Я использую Delphi для запуска Excel, а затем создаю новую электронную таблицу, которую я позже обновлю .... Я сделал хороший код для Delphi / Excel, и я вижу, поведение я не верю, что я видел раньше. Я создаю Excel, затем делаю ExcelApp.Worksheets.Add ..., чтобы создать новые рабочие листы. Поскольку я только что запустил Excel, объект Worksheets имеет значение nil, и впоследствии я получаю OLE-ошибку (800A03EC) при попытке добавить новую рабочую таблицу. Если я перехожу код и УЖЕ ПЕРЕД строкой ExcelApp.Worksheets.Add, я перехожу в Excel и делаю File / New, так что отображается пустой лист, мой код работает нормально. Итак, вопрос в том, когда ExcelApp.Worksheets равен нулю, как мне его создать? Я мог бы поклясться, что процедура «Добавить» сделала это автоматически.
function glib_TestExcel: Integer;
var
myAPP: OleVariant;
oExcel : ExcelApplication;
thisSheet: _Worksheet;
begin
if not Assigned(oExcel) then
begin
myAPP := CreateOleObject('Excel.Application');
oExcel := IDispatch(myAPP) as ExcelApplication;
oExcel.Visible[LOCALE_USER_DEFAULT] := True;
oExcel.ScreenUpdating[LOCALE_USER_DEFAULT] := True;
// THIS IS THE PROBLEM LINE BELOW
oExcel.Worksheets.Add(EmptyParam, EmptyParam,1, xlWorksheet, LOCALE_USER_DEFAULT );
// Get a handle to the new sheet and set the Sheet Name
thisSheet := oExcel.ActiveSheet as _Worksheet;
thisSheet.Name := 'New Sheet1';
result := glib_SUCCESS;
end;
end;