1) The simplest solution was to import to the apple_id and apple_id contacts will appear in Iphone contacts. The apple ID email we use could be outlook/gmail/other providers. And they will accept import without any problem.
2) If we still want to import to Icloud these are the steps.
a) Download google contacts to .csv (outlook)
b) Open in Excel, set header and sorting save as .xlsx
c) Remove abnormalities (Do a sorting of each field and you could perhaps observe email fields with numbers, phone fields with emails, unwanted chars in Notes, etc)
d) Sort by first name
e) split the xlsx into files with 1000 contacts each. (keep them as xlsx)
f) save each file as .csv (and then never open it with excel again as it can change the format)
g) import this to another(or new) google/outlook account (clear all contacts in it before you use it)
h) export these contacts as vcf
i) if you split the contacts(if you have 1000+ contacts) at #e step then do #g and #h again
j) at this point we have max 1000 contacts per VCF and it is sorted on first name (we also have corresponding .csv and .xlsx for these files)
k) now start the import to Icloud with the vcf.
l) if there is error, find out on which contact it failed by opening the corresponding xlsx (never open .csv) and doing a search in Icloud to see if the contact exists. Since it is sorted, it is easy to find the last letter uploaded to icloud.
J) you will have to fix the erroneous contact and start the whole process again!
It is hectic but that is what we get when use Icloud contacts!! It is badly built.