Came here in 2018 looking for solution of the same problem.
Found out it's not a bug in general: Excel uses different format based on value datatype.
select 2018 as implicit_number,
cast(2018 as integer) as explicit_integer,
cast(2018 as number(9)) as number9,
cast(2018 as number(10)) as...