From: Cyril Jandia (cjandia@logfi.fr)
Date: 31/10/2002 - 10:00
Bonjour,
> -----Message d'origine-----
> De : Eric.Reiter@ic.lu
> Envoyé : mercredi 30 octobre 2002 19:58
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] Re: RE : Fichier Excel vers XML
>
> Merci de l info
>
> je viens de regarder l adresse et ai recupere les fichiers. Malheureusement,
> je ne suis pas informaticien de formation. Pourrais tu donc me donner
> quelques indications sur la maniere d utiliser ce projet. Quel fichier fait
> quoi? Comment l utilisateur lance t il son programme?
En voici une adaptation plus légère, sans recours à VB, qui ne s'appuie que sur
[JScript] + [ADO], en ligne de commande ( [cscript].exe ) :
-- xls2xml.js :
var cn, rs;
var str_ExcelFileName = WScript.Arguments(0);
var str_RangeName = WScript.Arguments(1);
var str_XMLFileName = WScript.Arguments(2);
var str_ConnectionString =
'Provider=MSDASQL.1;Persist Security ' +
'Info=False;Extended Properties="' +
'DSN=Excel Files;DBQ=' + str_ExcelFileName + ';' +
'DriverId=790;"';
// Create a new ADO Connection Object
cn = new ActiveXObject("ADODB.Connection");
// Set the Connection String
cn.ConnectionString = str_ConnectionString;
// Set the Cursor location to Client Side
cn.CursorLocation = 3 /* (adUseClient) */;
// Open the Connection
cn.Open();
// Obtain the recordset by executing SQL statement with sheet name
rs = cn.Execute("SELECT * FROM " + str_RangeName);
// If records were returned the save the file
if(rs.RecordCount > 0) {
rs.Save(str_XMLFileName, 1 /* (adPersistXML) */);
WScript.StdErr.Write("OK: data saved.\n");
} else {
// NO records found advise user
WScript.StdErr.Write("NO data to save.\n");
}
// Close the Recordset and connection
rs.Close();
cn.Close();
Qui s'utilise par exemple comme suit :
-- mon_classeur.xls :
A B
1 First Last
2 Cyril Jandia
3 John Smith
(NB : avec une portée nommée "personnes" préalablement définie sur A1-B3 via le
menu "Insertion | Nom | Définir" d'Excel)
avec la ligne de commande :
C:\...>cscript //nologo xls2xml.js mon_classeur.xls personnes mon_classeur.xml
... on obtient ainsi qq chose comme :
-- mon_classeur.xml :
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly'>
<s:AttributeType name='c0' rs:name='First' rs:number='1' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='255'/>
</s:AttributeType>
<s:AttributeType name='c1' rs:name='Last' rs:number='2' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='255'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row c0='Cyril' c1='Jandia'/>
<z:row c0='John' c1='Smith'/>
</rs:data>
</xml>
> merci
> eric
[JScript]
http://msdn.microsoft.com/scripting/jscript
[ADO]
http://www.microsoft.com/data/ado/default.htm
[cscript]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/w
sruncscript.asp
Cordialement,
--CJ
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|