Вывод номера счета в ячейку Excel

  • Автор темы semantics
  • Дата начала
S

semantics

Проблема - обнуление половины номера счета

При выводе длинного числа в Excel- 20-значный номер счета (тип переменной ACC - string)
Ap.Cells[i,7]:=ACC;

вторая половина номера выдается нулями:
вместо - 40702810500000000385
выдается - 40702810500000000000

Если задать текстовый формат ячейки Excel - в ячейке появляется галочка - признак ошибки преобразования числа
Более короткие числа выдаются без проблем
 
S

sinkopa

Добавьте апостроф перед числовой строкой.
Excel (для ячеек общего формата ) преффиксный апостоф воспринимает как команду отображать данные ячейки в виде строки.
Сам апостроф при этом в ячейке не отображается.
Код:
Ap.Cells[i,7] := '''' + ACC;

Но более правильно все же работать с Экселем через интерфейсы экспортируемые юнитом ExcelXP.pas

Код:
uses
ExcelXP, OfficeXP, ActiveX;
...
type
TForm1 = class(TForm)
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
...

begin
ExcelApplication1.Connect;
...
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkbook.ActiveSheet as _Worksheet);
... 
// вот так
ExcelWorksheet1.Cells.Item[i,7].Value := '''' + ACC {'40702810500000000385'};
// или так
ExcelWorksheet1.Cells.Item[i,7].Text := '''' + ACC {'40702810500000000385'};
// а еще лучше явно указать формат данных
ExcelWorksheet1.Cells.Item[i,7].NumberFormat := '@';
ExcelWorksheet1.Cells.Item[i,7].Value := ACC {'40702810500000000385'};
...
ExcelApplication1.Visible[0] := true;
ExcelWorksheet1.Disconnect;
ExcelApplication1.Disconnect;
end;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!