1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| Variant vXLWorkbooks, vXLWorkbook, vMSExcel;
AnsiString vFileName = "C:\\temp.txt"; //nom du fichier
Variant vOrigin = 1; // = xlWindows format Windows (par défaut)
Variant vStartRow = 1; // on commence à la 1ère ligne (par défaut)
Variant vDataType = 1; // = xlDelimited format délimité (par défaut)
Variant vTextQualifier = 1; // = xlTextQualifierDoubleQuote qualificateur de texte (par défaut)
Variant vConsecutiveDelimiter = false; // pas de délimitateur consécutif
Variant vTab = false; // pas délimitateur tab
Variant vSemicolon = true; // délimitateur ";"
Variant vComma = false; // pas délimitateur virgule
Variant vSpace = false; // pas délimitateur espace
Variant vOther = false; // pas délimitateur autre
Variant vOtherChar = ';';//NULL; // délimitateur Other non actif
int LeNombreDeChamps = 3;
Variant vFieldInfo;
vFieldInfo = VarArrayCreate(OPENARRAY(int, (0, 2, 0, 1)), varInteger);
vFieldInfo = VarArrayCreate(OPENARRAY(int, (0, LeNombreDeChamps - 1, 0, 1)), varInteger);
for(int i = 0; i < LeNombreDeChamps; i++)//ceci va mettre au format texte toutes les colonnes
{
vFieldInfo.PutElement(i + 1, i, 0);
//on affecte i + 1 (i + 1 qui est la colonne Excel N°i + 1 en fait)
//à la ligne i colonne 0 du tableau vFieldInfo
vFieldInfo.PutElement(2, i, 1);
//on affecte 2 (Format Texte = 2) à la ligne i colonne 1 du tableau vFieldInfo
}
vMSExcel = Variant::CreateObject("Excel.Application");
vMSExcel.OlePropertySet("Visible", true);
vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
vXLWorkbook = vXLWorkbooks.OleFunction("OpenText", vFileName.c_str(), vOrigin,
vStartRow, vDataType, vTextQualifier,
vConsecutiveDelimiter, vTab, vSemicolon,
vComma, vSpace, vOther, vOtherChar, vFieldInfo);
vXLWorkbook = vXLWorkbooks.OlePropertyGet("Item", 1);
xlNormal = -4143;
chemin = "c:\\temp.xls";
vXLWorkbook.OleProcedure("Saveas", chemin, xlNormal, "", "", false, false); |