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

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

semantics

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

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

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

Если задать текстовый формат ячейки Excel - в ячейке появляется галочка - признак ошибки преобразования числа
Более короткие числа выдаются без проблем
 
Добавьте апостроф перед числовой строкой.
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;
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab