Bonjour,
J’essaie de mettre en place un envoi mail d’export Excel mais je n’y arrive pas
Il s’agit d’un objet SELECT dont je veux exporter la liste au format Excel et l’envoyer en PJ d’un mail.
Ca a l’air simple mais je ne m’en sors pas, voici mes questions :
l’export Excel se fait via le ExcelTool au format Outputstream, y-a-t-il un autre moyen ?
pour attacher un mail en utilisant mailAttach, on dirait que j’ai le choix entre un File et un ObjectField :
est-ce que je dois convertir l’outpustream en File, ou je me complique la vie ?
sinon si je dois stocker l’export dans un ObjectField, où faire ça dans le sens où j’aurais besoin d’un attribut global (non lié à une instance de mon objet)
Merci beaucoup pour ton retour, ça fonctionne parfaitement.
Par contre j’ai un souci avec le fichier Excel généré qui est corrompu, est-ce que tu aurais une idée ?
public void exportKPI()
{
try
{
ExcelTool tool = new ExcelTool(true);
tool.export(this, null, "full", null);
MailTool mail = new MailTool(getGrant());
mail.addRcpt("emmanuelle.fenice-extern@mobilize-fs.com");
mail.setSubject("Test Mail");
mail.addAttach(new MailAttach(tool.generateToByteArray(), "End_of_month_snapshot.xlsx"));
mail.setBody("<p>Hello</p>");
mail.send();
} catch (Exception e) {
AppLog.error(null, e, getGrant());
}
}
L’erreur à l’ouverture
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error052600_01.xml</logFileName>
<summary>Errors were detected in file 'exportpoi-1783347195120-QyseGZ8LN9Efhhon9SatamV3va5LAXxX.xlsx'</summary>
<removedParts><removedPart>Removed Part: /xl/styles.xml part with XML error. (Styles) A text/xml declaration may occur only at the very beginning of input. Line 2, column 14450.</removedPart></removedParts>
<removedRecords><removedRecord>Removed Records: Cell information from /xl/worksheets/sheet1.xml part</removedRecord></removedRecords>
<repairedRecords><repairedRecord>Repaired Records: Cell information from /xl/worksheets/sheet1.xml part</repairedRecord></repairedRecords></recoveryLog>
Pourrais-tu me confirmer que tu veux exporter la liste de tes objets en tenant compte de la recherche ?
Après vérification, tu peux également utiliser un OutputStream dans MailAttach:
ByteArrayOutputStream out = new ByteArrayOutputStream();
ExcelTool xls = new ExcelTool(true); // true = XLSX format
xls.export(this, null, "full", out);
mail.addAttach(new MailAttach(out,fileName));
Si l’erreur persiste, pourrais-tu m’indiquer si tu as des styles particuliers sur tes champs afin de reproduire dans des conditions similaires aux tiennes ?
Merci
Candice
Tu as raison, j’ai un display spécifique de cet objet.
J’ai fait le test avec une liste basique et je n’ai pas le souci.
Dans mon cas problématique, j’ai un objet externe qui présente plusieurs onglets avec un filtre date. Mon objet SELECT est affiché dans le dernier onglet via un displayList. Je te mets les ressources en PJ.