begin process at 2012 05 28 09:58:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > EXPORTER UN TABLEAU SOUS EXCEL (TER)

EXPORTER UN TABLEAU SOUS EXCEL (TER)


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :export, excel, tableau, colspan, rowspan Niveau :Débutant Date de création :07/08/2007 Vu :11 821

Auteur : dadasurf

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Voici une autre solution envisagée (par rapport à celle décrite dans http://www.javascriptfr.com/code.aspx?ID=17140) qui prend en compte les rowspan et colspan.
J'ai essayé de la tester dans le plus de cas possibles et ça a l'air de fonctionner...

Source

  • function exportToExcel(tableau) {
  • oExcel = new ActiveXObject('Excel.Application');
  • oWkBooks = oExcel.Workbooks.Add;
  • oExcelSheet = oWkBooks.Worksheets(1);
  • oExcelSheet.Activate();
  • nbrCellules = tableau.cells.length;
  • for (i = 0; i < tableau.cells.length; i++) {
  • nbrCellules = nbrCellules + (tableau.cells(i).colSpan * tableau.cells(i).rowSpan) - 1;
  • }
  • nbrColonnes = Math.ceil(nbrCellules / tableau.rows.length);
  • tab = new Array();
  • for (j = 0; j < nbrCellules; j++) {
  • tab.push('*');
  • }
  • decal = 0;
  • for (k = 0; k < tableau.cells.length; k++) {
  • if ((tableau.cells(k).colSpan == 1) && (tableau.cells(k).rowSpan == 1)) {
  • if (k != (tableau.cells.length - 1)) {
  • while (tab.slice((k + decal), (k + decal + 1)) == '') {
  • decal = decal + 1;
  • }
  • }
  • tab.splice((k + decal),1,tableau.cells(k).innerText);
  • } else if ((tableau.cells(k).colSpan > 1) && (tableau.cells(k).rowSpan == 1)) {
  • tab.splice((k + decal),1,tableau.cells(k).innerText);
  • for (l = 0; l < (tableau.cells(k).colSpan - 1); l++) {
  • tab.splice((k + decal + l + 1),1,'');
  • }
  • decal = decal + tableau.cells(k).colSpan - 1;
  • } else if ((tableau.cells(k).colSpan == 1) && (tableau.cells(k).rowSpan > 1)) {
  • tab.splice((k + decal),1,tableau.cells(k).innerText);
  • for (m = 0; m < (tableau.cells(k).rowSpan - 1); m++) {
  • tab.splice((k + decal + ((m + 1) * nbrColonnes)),1,'');
  • }
  • } else if ((tableau.cells(k).colSpan > 1) && (tableau.cells(k).rowSpan > 1)) {
  • tab.splice((k + decal),1,tableau.cells(k).innerText);
  • for (n = 0; n < tableau.cells(k).rowSpan ; n++) {
  • for (o = 0; o < tableau.cells(k).colSpan ; o++) {
  • if ((n == 0) && (o != 0)) {
  • tab.splice((k + decal + n + 1),1,'');
  • decal = decal + 1;
  • } else if (n != 0) {
  • tab.splice(k + decal + (nbrColonnes - tableau.cells(k).colSpan) + o + 1 + ((n - 1) * nbrColonnes),1,'');
  • }
  • }
  • }
  • }
  • }
  • for (m = 0; m < tab.length; m++) {
  • r = Math.ceil((m + 1) / nbrColonnes);
  • c = (m + 1) - ((r - 1) * nbrColonnes);
  • oExcel.ActiveSheet.Cells(r,c).Value = tab.slice(m,(m + 1));
  • }
  • oExcelSheet.Application.Visible = true;
  • }
function exportToExcel(tableau) {
	oExcel = new ActiveXObject('Excel.Application');
	oWkBooks = oExcel.Workbooks.Add;
	oExcelSheet = oWkBooks.Worksheets(1);
	oExcelSheet.Activate();
	nbrCellules = tableau.cells.length;
	for (i = 0; i < tableau.cells.length; i++) {
		nbrCellules = nbrCellules + (tableau.cells(i).colSpan * tableau.cells(i).rowSpan) - 1;
	}
	nbrColonnes = Math.ceil(nbrCellules / tableau.rows.length);
	tab = new Array();
	for (j = 0; j < nbrCellules; j++) {
		tab.push('*');
	}
	decal = 0;
	for (k = 0; k < tableau.cells.length; k++) {
		if ((tableau.cells(k).colSpan == 1) && (tableau.cells(k).rowSpan == 1)) {
			if (k != (tableau.cells.length - 1)) {
				while (tab.slice((k + decal), (k + decal + 1)) == '') {
					decal = decal + 1;
				}
			}
			tab.splice((k + decal),1,tableau.cells(k).innerText);
		} else if ((tableau.cells(k).colSpan > 1) && (tableau.cells(k).rowSpan == 1)) {
			tab.splice((k + decal),1,tableau.cells(k).innerText);
			for (l = 0; l < (tableau.cells(k).colSpan - 1); l++) {
				tab.splice((k + decal + l + 1),1,'');
			}
			decal = decal + tableau.cells(k).colSpan - 1;
		} else if ((tableau.cells(k).colSpan == 1) && (tableau.cells(k).rowSpan > 1)) {
			tab.splice((k + decal),1,tableau.cells(k).innerText);
			for (m = 0; m < (tableau.cells(k).rowSpan - 1); m++) {
				tab.splice((k + decal + ((m + 1) * nbrColonnes)),1,'');
			}
		} else if ((tableau.cells(k).colSpan > 1) && (tableau.cells(k).rowSpan > 1)) {
			tab.splice((k + decal),1,tableau.cells(k).innerText);
			for (n = 0; n < tableau.cells(k).rowSpan ; n++) {
				for (o = 0; o < tableau.cells(k).colSpan ; o++) {
					if ((n == 0) && (o != 0)) {
						tab.splice((k + decal + n + 1),1,'');
						decal = decal + 1;
					} else if (n != 0) {
						tab.splice(k + decal + (nbrColonnes - tableau.cells(k).colSpan) + o + 1 + ((n - 1) * nbrColonnes),1,'');
					}
				}
			}
		}
	}
	for (m = 0; m < tab.length; m++) {
		r = Math.ceil((m + 1) / nbrColonnes);
		c = (m + 1) - ((r - 1) * nbrColonnes);
		oExcel.ActiveSheet.Cells(r,c).Value = tab.slice(m,(m + 1));
	}
	oExcelSheet.Application.Visible = true;
}



 Sources de la même categorie

Source avec Zip Source avec une capture SLIDESHOW IMAGES ET TEXTES EN PUR JAVASCRIPT par ansuzpeorth
Source avec Zip INPUT TEXT AUTOMATIQUE CREATION SUPPRESSION par lycanges
Source avec Zip Source avec une capture TABLE_SV : TABLEAU DYNAMIQUE, MONTRER/CACHER COLONNE SUR DEM... par synanceia
COLONNES ADAPTABLES EN HAUTEUR par dronoide
Source avec Zip VECTEURS ET MATRICES: OUTILS GRAPHIQUES UTILES par william voirol

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FORMULAIRE TABLEAU par vic511
Source avec Zip Source avec une capture TABLE_SV : TABLEAU DYNAMIQUE, MONTRER/CACHER COLONNE SUR DEM... par synanceia
AUTOMATION EXCEL PAR JAVASCRIPT par Cpustack
Source avec Zip MOOTABLEAU par Miky76
Source avec une capture JEU DE COULEURS DANS UN TABLEAU À 3 DIMENSION par Niidhogg

Commentaires et avis

Commentaire de gwivv le 25/06/2008 10:04:25 10/10

Bien vu !! J'ai testé et ton code marche très bien avec les colspan et rowspan de mes tableaux !!

Commentaire de slnk le 25/02/2009 15:21:04

bonjour,
pourrais-tu donner des indications sur la façon d'utiliser ton script?
merci d'avance.

Commentaire de nellsy le 27/06/2009 14:23:47

Bonjour,

A savoir que pour pouvoir utiliser cette fonction, il te faut excel installé sur la machine...

Commentaire de lililalalulu le 26/05/2010 10:10:20

moi aussi je voudrai quelque indication

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Importer données d'un tableau excel... [ par djudju45 ] Salut à tous, je souhaiterai savoir s'il est possible d'importer des données (contenues dans les cellules) d'un fichier excel dans un tableau html.Si exportation tableau html vers excel [ par kedieng ] Slt j'aimerai pouvoir exporter un tableau html en excel mais je ne sais pas comment faire. Si quelqu'un peut m'aider.Merci Bouton pour export html vers Excel [ par artkap ] Bonjour, je n'ai rien trouvé qui fonctionne vraiment (IE/FF) pour faire un export d'une page html affichant un tableau -crée grâce à une requête php- Tableau de calcul livret (excel >HTML) [ par filocheeric ] Bonjour J&#8217;ai fais sous excel une table de calcul pour calculer les épaisseurs de livrets suivant le grammage des feuilles de couverture et int Automatiser le passage de données excel à un tableau web ? [ par Rose6 ] Salut, j'ai une page web avec un tableau de 100 cases par 100 cases qui va servir a recenser entre autres la nationalité, le prénom et l'age de diffé Verification selection minimale, parmis tableau de checkbox, en Javascript [ par htaine ] Bonjour à tous, je demande votre aide après "googlelisation" de mon problème, et pas de réponse adéquate...merci d'avance de votre attention et vos ré Mise en forme tableau javascript [ par bridierb ] Bonjour, J'ai créé un tableau d'entiers sous javascript auquel j"ai ajouté une fonction inverse. Cette fonction m'affiche bien mon tableau inversé mai masque un tableau au chargement de la page [ par massbbc ] Bonjour a tous! Je suis un vraidebutant et je tente de realisé une petite application en php. Mon problème est que je souhaitérait cacher un tableau a Jquery : tableau dynamique [ par lenneth666 ] Bonjour Sur l'une de mes pages web j'ai un formulaire. j'aimerais que lorsque je valide les données du formulaire, mon tableau se rafraîchisse dynam Recuperer le resultat d'un fonction Php [ par jimmypage64 ] Bonjour, J'utilise jQuery et je voudrais afficher le contenu d'un fichier texte dans ma page. La fonction d'affichage est la suivante : [code=js]fun


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,605 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales