public void exportExcelCsa(ArrayList pTitreColonne, ArrayList pIndiceColonne, ArrayList pListe,
HttpServletResponse pReponseHttp, final boolean pTest, final String pNomFichier) throws FretOrchestreException {
// creation d'un classeur
final HSSFWorkbook vClasseurExcel = new HSSFWorkbook();
// creation des styles
// police des titres
final HSSFFont vFontHeader = vClasseurExcel.createFont();
vFontHeader.setFontHeightInPoints((short) 10);
vFontHeader.setFontName("Times New Roman");
vFontHeader.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
vFontHeader.setColor(HSSFColor.WHITE.index);
// style des cellules de titres
final HSSFCellStyle vStyleTitreColonne = vClasseurExcel.createCellStyle();
vStyleTitreColonne.setFillForegroundColor(HSSFColor.SEA_GREEN.index);
vStyleTitreColonne.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
vStyleTitreColonne.setFont(vFontHeader);
vStyleTitreColonne.setBorderBottom(HSSFCellStyle.BORDER_THIN);
vStyleTitreColonne.setBottomBorderColor(HSSFColor.BLACK.index);
vStyleTitreColonne.setBorderLeft(HSSFCellStyle.BORDER_THIN);
vStyleTitreColonne.setLeftBorderColor(HSSFColor.BLACK.index);
vStyleTitreColonne.setBorderRight(HSSFCellStyle.BORDER_THIN);
vStyleTitreColonne.setRightBorderColor(HSSFColor.BLACK.index);
vStyleTitreColonne.setBorderTop(HSSFCellStyle.BORDER_THIN);
vStyleTitreColonne.setTopBorderColor(HSSFColor.BLACK.index);
vStyleTitreColonne.setAlignment(HSSFCellStyle.ALIGN_CENTER);
vStyleTitreColonne.setWrapText(true);
// police des données
final HSSFFont vFont = vClasseurExcel.createFont();
vFont.setFontHeightInPoints((short) 10);
vFont.setFontName("Times New Roman");
// style des cellules de données
final HSSFCellStyle vStyleDonnees = vClasseurExcel.createCellStyle();
vStyleDonnees.setBorderBottom(HSSFCellStyle.BORDER_THIN);
vStyleDonnees.setBottomBorderColor(HSSFColor.BLACK.index);
vStyleDonnees.setBorderLeft(HSSFCellStyle.BORDER_THIN);
vStyleDonnees.setLeftBorderColor(HSSFColor.BLACK.index);
vStyleDonnees.setBorderRight(HSSFCellStyle.BORDER_THIN);
vStyleDonnees.setRightBorderColor(HSSFColor.BLACK.index);
vStyleDonnees.setBorderTop(HSSFCellStyle.BORDER_THIN);
vStyleDonnees.setTopBorderColor(HSSFColor.BLACK.index);
vStyleDonnees.setFont(vFont);
vStyleDonnees.setAlignment(HSSFCellStyle.ALIGN_LEFT);
/* creation de l'onglet Recherche */
final String vTitre = "Recherche";
final HSSFSheet vOnglet = vClasseurExcel.createSheet(vTitre);
//genererEnTeteEtPiedDePage(vTitre, vOnglet, true);
/* Titre des colonnes. */
creerLigneTitre(vOnglet, pTitreColonne, vStyleTitreColonne);
/* Contenu de la liste pour la version retraitée. */
creerContenuFretListe(vOnglet, pListe, pIndiceColonne, vStyleDonnees);
/* Génération en tete et pied de page. */
final HSSFHeader vEnTete = vOnglet.getHeader();
vEnTete.setLeft("Commandes en saisie");
final HSSFFooter vPiedDePage = vOnglet.getFooter();
final SimpleDateFormat vSimpleDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
vPiedDePage.setLeft(vSimpleDateFormat.format(new Date()));
vPiedDePage.setRight(HSSFFooter.page() + " / " + HSSFFooter.numPages());
OutputStream vOutput = null;
try {
// flux de sortie
if (pTest) {
final FileOutputStream vFileOut = new FileOutputStream("c:\\" + pNomFichier + ".xls");
vClasseurExcel.write(vFileOut);
vFileOut.close();
} else {
vOutput = pReponseHttp.getOutputStream();
pReponseHttp.setContentType("application/vnd.ms-excel");
pReponseHttp.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
pReponseHttp.setHeader("Pragma", "public");
pReponseHttp.setDateHeader("Expires", 0);
pReponseHttp.setHeader("Content-disposition", "attachment;filename=\"" + pNomFichier + ".xls\"");
pReponseHttp.setStatus(HttpServletResponse.SC_OK);
vClasseurExcel.write(vOutput);
}
} catch (Exception vExc) {
sLog.error("Echec d'enregistrement du fichier généré (échec d'écriture, répértoire inconnu,...)" + vExc.getMessage());
} finally {
//fermeture du flux
try {
if (vOutput != null) {
vOutput.close();
}
} catch (IOException vIoExce) {
sLog.error("Echec d'enregistrement du fichier généré (échec d'écriture, répertoire inconnu,...)" + vIoExce.getMessage());
}
}
}
lundi 26 octobre 2009
java : export excel et flux a telecharger
Voici un petit code permettant de realiser un export Excel et de le recevoir par une servlet ... Cet exemple s'appuie sur la librairie POI d'apache :
vendredi 23 octobre 2009
putty : exporter et importer rapidement la configuration de putty
Pour l'export de configuration, il suffit d'exporter la clé de registre suivante, via la commande ms-dos :
regedit /e putty.reg HKEY_CURRENT_USER/Software/SimonTatham/PuTTY/Sessions
Pour l'import de configuration, il suffit d'importer la clé de registre suivante, via la commande ms-dos :
regedit /s putty.reg
Il est aussi possible de le faire via l'ihm de regedit
regedit /e putty.reg HKEY_CURRENT_USER/Software/SimonTatham/PuTTY/Sessions
Pour l'import de configuration, il suffit d'importer la clé de registre suivante, via la commande ms-dos :
regedit /s putty.reg
Il est aussi possible de le faire via l'ihm de regedit
jeudi 8 octobre 2009
oracle : trouver si des tables, vues ou objets divers existent ...
Une question qui se pose souvent est de savoir si un objet, une table, une vue, un synonyme est présent ou non dans une base ...
Voici une petite requête utile :
select * from dba_objects where object_name like 'VBORFMRPA'et voila ... on peut voir si le synonyme existe par exemple et qui en est le propriétaire ... Voilou ..
lundi 5 octobre 2009
java : générer des daigrammes de séquences avec jtracert
Il s'agit d'un outil qui instrumente la JVM (1.5 ou > ) lors de son fonctionnement. Pour cela, il suffit de télécharger jtracert et installer le GUI. Une fois cette opération terminée, vous n'avez qu'a rajouter les paramètres de lancement suivant à la ligne de commande :
-javaagent:D:\MesDocs\mySoft\jtrace\jTracert.jar=7007
Vous lancer alors le GUI et cliquer sur le noeud package ...

Ceci va vous permettre de visualiser le digramme. Un filtrage sur les classe est possible, ainsi que la sélection du répertoire d'export des diagrammes ...

Ceci fonctionne aussi pour les applications J2EE. il suffit d'ajouter cette ligne à catalinat.bat pour tomcat :
set JAVA_OPTS=-DanalyzerOutput=sdEditRtClient -DsdEditHost=127.0.0.1 -DsdEditPort=60001 -javaagent:"chemin librairie"\jTracert.jar=7007 %JAVA_OPTS%
A noter, que je n'ai pas eu le temps de tester ce programme avec tomcat ... Cet outil semble bien fonctionner et permet une analyse rapide du code ...
Vous lancer alors le GUI et cliquer sur le noeud package ...
Ceci va vous permettre de visualiser le digramme. Un filtrage sur les classe est possible, ainsi que la sélection du répertoire d'export des diagrammes ...
Ceci fonctionne aussi pour les applications J2EE. il suffit d'ajouter cette ligne à catalinat.bat pour tomcat :
A noter, que je n'ai pas eu le temps de tester ce programme avec tomcat ... Cet outil semble bien fonctionner et permet une analyse rapide du code ...
jeudi 1 octobre 2009
selenium : les utiliser en junit
Voici un petit exemple, de script enregistrer sous Selenium IDE, puis exporter en junit ...
Après c'est simple, il suffit d'exporter l'ensemble en junit, de créer un projet sous eclipse, en ajoutant une jre > 1.5 et télécharger le serveur selenium Remote Control.
Ce dernier nous fournira le serveur , et un jar client pour lancer les commandes selenium à notre browser (selenium-java-client-driver.jar).
Avant de lancer un test unitaire, il faut avoir lancer le serveur par une commande du type :
"C:\Program Files\Java\jre1.6.0_05\bin\java.exe" -jar selenium-server.jar
Et ensuite voici, la classe obtenue après export ... d'un test enregistrer sous Firefox avec Selenium IDE. A noter que ce dernier sera executé sous IE ...
Après c'est simple, il suffit d'exporter l'ensemble en junit, de créer un projet sous eclipse, en ajoutant une jre > 1.5 et télécharger le serveur selenium Remote Control.
Ce dernier nous fournira le serveur , et un jar client pour lancer les commandes selenium à notre browser (selenium-java-client-driver.jar).
Avant de lancer un test unitaire, il faut avoir lancer le serveur par une commande du type :
"C:\Program Files\Java\jre1.6.0_05\bin\java.exe" -jar selenium-server.jar
Et ensuite voici, la classe obtenue après export ... d'un test enregistrer sous Firefox avec Selenium IDE. A noter que ce dernier sera executé sous IE ...
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class TestBoc extends SeleneseTestCase {
public void setUp() throws Exception {
// setUp("http://change-this-to-the-site-you-are-testing/", "*chrome");
setUp("http://change-this-to-the-site-you-are-testing/", "*iexplore");
}
public void testBoc() throws Exception {
selenium.open("http://www.yahoo.fr");
selenium.type("login", "toto");
selenium.type("password", "titi");
selenium.select("module", "label=Orchestre");
selenium.click("link=Valider");
selenium.waitForPageToLoad("30000");
selenium.click("brechercher");
selenium.waitForPageToLoad("30000");
for (int second = 0;; second++) {
if (second >= 60) fail("timeout");
try { if ("24903".equals(selenium.getText("//tr[@id='l1']/td[2]"))) break; } catch (Exception e) {}
Thread.sleep(1000);
}
verifyTrue(selenium.isTextPresent("24903"));
selenium.click("link=D\u233connexion");
}
}
java : regexp
Les regexp sont très utile pour les traitements complexes sur les chaines (par ex.: recherche, remplacement).
Voici un petit exemple de regexp qui recherche des mots du type :
Ce dernier va trouver la chaine en gras .. et pas une autre ... On notera que les
helolo ca marche super ReqIntMin200Max300 eReqIntMin200Max300
voici des regexp utiles (trouve sur cette très bonne page ):
un nom d'utilisateur
trouver un tag XML/XHTML
trouver un tag XML/XHTML avec une valeur particulière
Voici un petit exemple de regexp qui recherche des mots du type :
\b((Req)*(Int((Min\d+)*)(Max\d+)*))\bCe dernier va trouver la chaine en gras .. et pas une autre ... On notera que les
\b sont les frontières des mots ... et les * (0 ou plusieurs) sont des indicateurs optionnels ... les + sont 1 ou plus ... helolo ca marche super ReqIntMin200Max300 eReqIntMin200Max300
voici des regexp utiles (trouve sur cette très bonne page ):
un nom d'utilisateur
/[a-zA-Z0-9_]{3,16}/trouver un tag XML/XHTML
{<tag[^>]*>(.*?)</tag>}trouver un tag XML/XHTML avec une valeur particulière
{<tag[^>]*attribute\\s*=\\s*(["'])value\\\\1[^>]*>(.*?)</tag>}
vendredi 25 septembre 2009
javascript : loggin avec blackbird
Blackbird est une librairie très utile permettant de logger sous javascript dans une console externe, et fonctionnant sous IE6 + ... et la plupart des autres navigateurs:
Pour mettre en place, le système il faut télécharger la librairie, et y faire référence dans la page html. Voici, un petit exemple ... A noter, que des raccourcis permette d'afficher ou non la console (F2) , de filtrer les messages, et aussi de profiler les fonctions en utilisant une etiquettes.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="../js/blackbird.js" ></script>
<link type="text/css" rel="Stylesheet" href="../js/blackbird.css" ></link>
</head>
<body>
<script type="text/javascript" language="javascript">
function testLog()
{
log.profile('testLog');
log.debug(new Date());
log.info(new Date());
log.error('erreur');
log.profile('testLog');
}
</script>
<h3>ceci est un test blackbird</h3>
<a href="javascript:testLog()">testLog</a>
</body>
</html>
et voila .. il est possible de logger simplement et elegamment
Inscription à :
Articles (Atom)