transformation d'un fichier xls en poscript avec dll excel - C++ - Programmation
Marsh Posté le 22-04-2005 à 15:11:24
J'ai aussi comparé les tlh word et excel (97) et ce qui me paraît bizarre, c'est que contrairement à la primitive PrintOut de Word, celle d'Excel n'a pas l'air d'avoir besoin d'un nom de fichier en sortie :
HRESULT PrintOut (
const _variant_t & From = vtMissing,
const _variant_t & To = vtMissing,
const _variant_t & Copies = vtMissing,
const _variant_t & Preview = vtMissing,
const _variant_t & ActivePrinter = vtMissing,
const _variant_t & PrintToFile = vtMissing,
const _variant_t & Collate = vtMissing );
Marsh Posté le 22-04-2005 à 14:24:08
Bonjour,
il me faudrait convertir un fichier au format xls en poscript, voilà le code de ma méthode :
int WINAPI FICHEXCEL_ImpressionPS ( ptFICHEXCEL_WORKBOOK ptWb,
char *cFile)
{
ptCFICHEXCEL_WORKBOOK ptCWb = (ptCFICHEXCEL_WORKBOOK) ptWb;
int iRetCode = -1;
variant_t vDocumentName = cFile;
variant_t vtAppend = VARIANT_FALSE;
Excel::_WorkbookPtr ptWorkBook;
/* Recherche du nombre de champs
*/
try {
/* Recuperation du doument
*/
ptWorkBook = ptCWb->ptWorkBook;
/* Impression
*/
ptApp->Worksheets->PrintOut(&vtMissing,
&vtMissing,&vtMissing,
&vtMissing,&vDocumentName ,&vtPrintToFile,
&vtMissing) ;
iRetCode = 0;
}
catch ( _com_error &e)
{
iRetCode = -1;
}
return iRetCode;
}
###############
où ptApp est de type _ApplicationPtr
Après avoir exécuté :
ptApp.CreateInstance
puis :
ptApp->WorkBooks->Open
j'exécute après la méthode FICHEXCEL_ImpressionPS qui m'ouvre une popup en me demandant le nom du fichier de sortie (c'est-à-dire le contenu du paramètre vDocumentName). J'ai bien vérifié le contenu de vDocumentName qui contient le nom du fichier contenu dans la variable d'entrée cFile.
Ma méthode fonctionne mais je suis obligé de mettre à la main le nom du fichier postcript de sortie. Pourriez-vous me dire comment faire pour que le nom du fichier de sortie passé dans le paramètre vDocumentName soit pris de façon automatique sans passer par la popup ?
Merci
NB : j'ai fait sensiblement la même méthode pour une dll de pilotage de Word en utilisant la méthode PrintOut et le traitement se fait sans passer par une popup