Paramétrage des dates
This commit is contained in:
parent
b4e7a254bd
commit
8f7fc3b9ec
37
README.md
37
README.md
@ -16,6 +16,16 @@ Le répertoire *dist/* contient la dernière compilation avec numéro de version
|
|||||||
|
|
||||||
En mode développement, les fichiers de *src/js/currency*, *src/js/xmlwriter* et *src/js/opendocument* sont des bibliothèques séparées avec leur propre « espace de nom ». À la compilation, ils sont placés dans `Html2Ods` pour n'avoir qu'un seul « espace de nom », c'est pourquoi il ne faut pas supprimer la ligne `//compile target` dans le fichier *src/js/Html2Ods.js*
|
En mode développement, les fichiers de *src/js/currency*, *src/js/xmlwriter* et *src/js/opendocument* sont des bibliothèques séparées avec leur propre « espace de nom ». À la compilation, ils sont placés dans `Html2Ods` pour n'avoir qu'un seul « espace de nom », c'est pourquoi il ne faut pas supprimer la ligne `//compile target` dans le fichier *src/js/Html2Ods.js*
|
||||||
|
|
||||||
|
## Options disponible
|
||||||
|
|
||||||
|
L'objet options passé en argument peut avoir les propriétés suivantes :
|
||||||
|
|
||||||
|
- *currency* : monnaie par défaut des valeurs monétaires (peut être modifiée au niveau de la table ou de la cellule)
|
||||||
|
- *datePattern* : formatage par défaut des dates (peut être modifié au niveau de la table ou de la cellule) ; `YYYY-MM-DD` par défaut
|
||||||
|
- *textAlias* : nom de l'attribut à utiliser comme alias de `data-od-text` ; le nom doit être exprimée sous la forme javascript (si l'attribut à utiliser est `data-mon-texte-personnalise`, il faut indiquer *monTextePersonnalise*) ; `text` par défaut
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Attributs spéciaux des éléments HTML
|
## Attributs spéciaux des éléments HTML
|
||||||
|
|
||||||
L'exportation peut être configurée à l'aide d'attributs nommés `data-od-*`. Ils sont tous facultatifs et sont placés au niveau des différents éléments composants le tableau.
|
L'exportation peut être configurée à l'aide d'attributs nommés `data-od-*`. Ils sont tous facultatifs et sont placés au niveau des différents éléments composants le tableau.
|
||||||
@ -25,7 +35,8 @@ Il est à noter que les attributs `colspan` et `rowspan` sont reconnus et appliq
|
|||||||
### Élément `<table>`
|
### Élément `<table>`
|
||||||
|
|
||||||
- `data-od-sheetname` : nom de la feuille dans le fichier résultant
|
- `data-od-sheetname` : nom de la feuille dans le fichier résultant
|
||||||
- `data-od-currency` : code ISO en trois lettres de la monnaie par défaut de la table
|
- `data-od-currency` : monnaie par défaut de la table (voir ci-dessous)
|
||||||
|
- `data-od-date-pattern` : formatage des dates de la table (voir ci-dessous)
|
||||||
- `data-od-fixed-rows` : nombre de lignes fixes
|
- `data-od-fixed-rows` : nombre de lignes fixes
|
||||||
- `data-od-fixed-columns` : nombre de colonnes fixes
|
- `data-od-fixed-columns` : nombre de colonnes fixes
|
||||||
|
|
||||||
@ -44,7 +55,8 @@ Il est à noter que les attributs `colspan` et `rowspan` sont reconnus et appliq
|
|||||||
- `data-od-style` : style de la cellule (en cas d'absence de valeur, un élément `<th>` a comme style *Header* et un élément `<td>` a comme style *Standard*)
|
- `data-od-style` : style de la cellule (en cas d'absence de valeur, un élément `<th>` a comme style *Header* et un élément `<td>` a comme style *Standard*)
|
||||||
- `data-od-type` : type des données de la cellule (valeurs possibles : `number`, `date` ou `currency`)
|
- `data-od-type` : type des données de la cellule (valeurs possibles : `number`, `date` ou `currency`)
|
||||||
- `data-od-text` : texte de la cellule (alias : `data-text`), voir ci-dessous
|
- `data-od-text` : texte de la cellule (alias : `data-text`), voir ci-dessous
|
||||||
- `data-od-currency` : code ISO en trois lettres de la monnaie de la cellule, n'a d'intérêt que si la cellule est de type `currency` et peut être défini au niveau de l'élément `<table>`
|
- `data-od-currency` : monnaie de la cellule, n'a d'intérêt que si la cellule est de type `currency` (voir ci-dessous)
|
||||||
|
- `data-od-date-pattern` : formatage de la date, n'a d'intérêt que si si la cellule est de type `date` (voir ci-dessous)
|
||||||
|
|
||||||
#### Texte d'une cellule
|
#### Texte d'une cellule
|
||||||
|
|
||||||
@ -54,6 +66,27 @@ Au lieu de l'attribut `data-od-text`, la valeur peut être définie dans l'attr
|
|||||||
|
|
||||||
Lorsque le texte de la cellule est le texte brut de l'élément, il est possible d'ignorer un élément enfant **direct** de l'élément `<td>` ou `<th>` en lui donnant l'attribut `data-od-hidden` avec n'importe quelle valeur non nulle (1 ou true sont conseillés).
|
Lorsque le texte de la cellule est le texte brut de l'élément, il est possible d'ignorer un élément enfant **direct** de l'élément `<td>` ou `<th>` en lui donnant l'attribut `data-od-hidden` avec n'importe quelle valeur non nulle (1 ou true sont conseillés).
|
||||||
|
|
||||||
|
#### Formatage des dates
|
||||||
|
|
||||||
|
Par défaut, les dates sont affichées au format ISO (année-mois-jour). Une autre format d'affichage peut être indiqué à trois endroits différents (classés par ordre de préséance) : l'attribut `data-od-date-pattern` de la celulle, l'attribut `data-od-date-pattern` de la table et la propriété *datePattern* de l'objet *options* passé en argument.
|
||||||
|
|
||||||
|
Ce format doit est une chaine où les lettres suivantes sont remplacées par les valeurs de la date :
|
||||||
|
|
||||||
|
- D : numéro du jour à un ou deux chiffres
|
||||||
|
- DD : numéro du jour à deux chiffres
|
||||||
|
- M : numéro du mois à un ou deux chiffres
|
||||||
|
- MM : numéro du mois à deux chiffres
|
||||||
|
- Y : année à deux chiffres
|
||||||
|
- YY : année à quatre chiffres
|
||||||
|
|
||||||
|
Par exemple, le code ISO correspond au format `YYYY-MM-DD` ; `DD\MM\YY` affiche le trois novembre 2021 sous la forme 03/11/21).
|
||||||
|
|
||||||
|
#### Code des monnaies
|
||||||
|
|
||||||
|
Les valeurs monétaires doivent avoir l'indication de la monnaie correspondante. Cette monnaie peut être indiquée à trois endroits différents (classés par ordre de préséance) : l'attribut `data-od-currency` de la cellule, l'attribut `data-od-currency` de la table, la propriété *datePattern* de l'objet *options* passé en argument.
|
||||||
|
|
||||||
|
La monnaie est indiquée par son code ISO en trois lettres : *EUR*, *USD*, etc.
|
||||||
|
|
||||||
## Définition des styles via une syntaxe CSS
|
## Définition des styles via une syntaxe CSS
|
||||||
|
|
||||||
Dans le format OpenDocument, la mise en forme des éléments (colonne, ligne, cellule) sont définies par des styles attachés aux éléments. Si de nombreux noms de propriété rappellent ceux des propriétés courantes du CSS, il y a quelques différences de taille :
|
Dans le format OpenDocument, la mise en forme des éléments (colonne, ligne, cellule) sont définies par des styles attachés aux éléments. Si de nombreux noms de propriété rappellent ceux des propriétés courantes du CSS, il y a quelques différences de taille :
|
||||||
|
@ -17,10 +17,16 @@
|
|||||||
<script type="text/javascript" src="../src/js/Html2Ods.js"></script>
|
<script type="text/javascript" src="../src/js/Html2Ods.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
currency: "EUR",
|
||||||
|
datePattern: "DD/MM/YYYY",
|
||||||
|
textAlias: "texteAlternatif"
|
||||||
|
};
|
||||||
|
|
||||||
function fodsLink() {
|
function fodsLink() {
|
||||||
let link = document.getElementById("link");
|
let link = document.getElementById("link");
|
||||||
link.href = URL.createObjectURL(
|
link.href = URL.createObjectURL(
|
||||||
Html2Ods.blob("table")
|
Html2Ods.blob("table", options)
|
||||||
);
|
);
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
URL.revokeObjectURL(link.href);
|
URL.revokeObjectURL(link.href);
|
||||||
@ -29,7 +35,7 @@ function fodsLink() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function fodsContent() {
|
function fodsContent() {
|
||||||
document.getElementById("text").innerText = Html2Ods.xml("table");
|
document.getElementById("text").innerText = Html2Ods.xml("table", options);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
@ -40,9 +46,9 @@ function fodsContent() {
|
|||||||
<p><a href="blob:" download="test1.fods" id="link" onclick="fodsLink()">Version ODS</a></p>
|
<p><a href="blob:" download="test1.fods" id="link" onclick="fodsLink()">Version ODS</a></p>
|
||||||
<table id="table"
|
<table id="table"
|
||||||
data-od-sheetname="Tableau de suivi"
|
data-od-sheetname="Tableau de suivi"
|
||||||
data-od-currency="EUR"
|
|
||||||
data-od-fixed-rows="2"
|
data-od-fixed-rows="2"
|
||||||
data-od-fixed-columns="1">
|
data-od-fixed-columns="1"
|
||||||
|
>
|
||||||
<col data-od-style="Longue">
|
<col data-od-style="Longue">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col data-od-style="Courte">
|
<col data-od-style="Courte">
|
||||||
@ -82,10 +88,10 @@ function fodsContent() {
|
|||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">Cellule 3.1</td>
|
<td colspan="2">Cellule 3.1</td>
|
||||||
<td data-od-type="currency" data-od-text="1250">1100 €</td>
|
<td data-od-type="currency" data-od-text="1250">1100 €</td>
|
||||||
<td data-od-type="currency" data-od-currency="USD" data-text="-1315" class="essai">-$2500</td>
|
<td data-od-type="currency" data-od-currency="USD" data-texte-alternatif="-1315" class="essai">-$2500</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td data-od-type="date" data-od-text="2020-12-01">01/12/2020</td>
|
<td data-od-type="date" data-od-text="2020-12-01" data-od-date-pattern="D/M/YY">1/12/20</td>
|
||||||
<td data-od-type="date" data-od-text="2021-01-11">11/01/2021</td>
|
<td data-od-type="date" data-od-text="2021-01-11">11/01/2021</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @param {OpenDocument.XmlWriter} xmlWriter
|
* @param {OpenDocument.XmlWriter} xmlWriter
|
||||||
*/
|
*/
|
||||||
OpenDocument.OdsConverter = function (xmlWriter) {
|
OpenDocument.OdsConverter = function (xmlWriter, options) {
|
||||||
this.xmlWriter = xmlWriter;
|
this.xmlWriter = xmlWriter;
|
||||||
this.sheetName = "";
|
this.sheetName = "";
|
||||||
this.nameMap = {};
|
this.nameMap = {};
|
||||||
@ -15,6 +15,20 @@ OpenDocument.OdsConverter = function (xmlWriter) {
|
|||||||
this.currencyMap = {};
|
this.currencyMap = {};
|
||||||
this.fixedRows = 0;
|
this.fixedRows = 0;
|
||||||
this.fixedColumns = 0;
|
this.fixedColumns = 0;
|
||||||
|
this.textDataAttribute = "text";
|
||||||
|
this.defaultCurrencyCode = "";
|
||||||
|
this.defaultDatePattern = "YYYY-MM-DD";
|
||||||
|
if (options) {
|
||||||
|
if (options.datePattern) {
|
||||||
|
this.defaultDatePattern = options.datePattern;
|
||||||
|
}
|
||||||
|
if (options.currency) {
|
||||||
|
this.defaultCurrencyCode = options.currency;
|
||||||
|
}
|
||||||
|
if (options.textAlias) {
|
||||||
|
this.textDataAttribute = options.textAlias;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
OpenDocument.OdsConverter.convertToBlob = function (table, options) {
|
OpenDocument.OdsConverter.convertToBlob = function (table, options) {
|
||||||
@ -24,22 +38,44 @@ OpenDocument.OdsConverter.convertToBlob = function (table, options) {
|
|||||||
|
|
||||||
OpenDocument.OdsConverter.convertToXml = function (table, options) {
|
OpenDocument.OdsConverter.convertToXml = function (table, options) {
|
||||||
var xmlWriter = new OpenDocument.XmlWriter({prettyXml: true});
|
var xmlWriter = new OpenDocument.XmlWriter({prettyXml: true});
|
||||||
var odsConverter = new OpenDocument.OdsConverter(xmlWriter);
|
var odsConverter = new OpenDocument.OdsConverter(xmlWriter, options);
|
||||||
odsConverter.convert(table, options);
|
odsConverter.convert(table);
|
||||||
return xmlWriter.xml;
|
return xmlWriter.xml;
|
||||||
};
|
};
|
||||||
|
|
||||||
OpenDocument.OdsConverter.prototype.convert = function (table, options) {
|
OpenDocument.OdsConverter.prototype.checkOdData = function (table) {
|
||||||
|
let odCurrency = table.dataset["odCurrency"];
|
||||||
|
if (odCurrency) {
|
||||||
|
this.defaultCurrencyCode = odCurrency;
|
||||||
|
}
|
||||||
|
let sheetName = table.dataset["odSheetname"];
|
||||||
|
if (sheetName) {
|
||||||
|
this.sheetName = sheetName;
|
||||||
|
}
|
||||||
|
let fixedRows = table.dataset["odFixedRows"];
|
||||||
|
if (fixedRows) {
|
||||||
|
this.fixedRows = fixedRows;
|
||||||
|
}
|
||||||
|
let fixedColumns = table.dataset["odFixedColumns"];
|
||||||
|
if (fixedColumns) {
|
||||||
|
this.fixedColumns = fixedColumns;
|
||||||
|
}
|
||||||
|
let odDatePattern = table.dataset["odDatePattern"];
|
||||||
|
if (odDatePattern) {
|
||||||
|
this.defaultDatePattern = odDatePattern;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
OpenDocument.OdsConverter.prototype.convert = function (table) {
|
||||||
if (typeof table === "string") {
|
if (typeof table === "string") {
|
||||||
table = document.getElementById(table);
|
table = document.getElementById(table);
|
||||||
}
|
}
|
||||||
|
this.checkOdData(table);
|
||||||
var converter = this;
|
var converter = this;
|
||||||
var styleManager = this.styleManager;
|
var styleManager = this.styleManager;
|
||||||
var _getRowStyleName = OpenDocument.OdsConverter.default_getRowStyleName;
|
var _getRowStyleName = OpenDocument.OdsConverter.default_getRowStyleName;
|
||||||
var _getCellStyleName = OpenDocument.OdsConverter.default_getCellStyleName;
|
var _getCellStyleName = OpenDocument.OdsConverter.default_getCellStyleName;
|
||||||
var textDataAttribute = "text";
|
|
||||||
var defaultCurrencyCode = "";
|
|
||||||
_checkArguments();
|
|
||||||
var columnArray = OpenDocument.OdsConverter.readTableColumns(table, styleManager);
|
var columnArray = OpenDocument.OdsConverter.readTableColumns(table, styleManager);
|
||||||
var xw = new OpenDocument.XmlWriter({indentLength: 3});
|
var xw = new OpenDocument.XmlWriter({indentLength: 3});
|
||||||
xw
|
xw
|
||||||
@ -60,33 +96,7 @@ OpenDocument.OdsConverter.prototype.convert = function (table, options) {
|
|||||||
xw
|
xw
|
||||||
.closeTable(xw);
|
.closeTable(xw);
|
||||||
this.ods(xw.xml);
|
this.ods(xw.xml);
|
||||||
|
|
||||||
function _checkArguments() {
|
|
||||||
if (options) {
|
|
||||||
if (options.rowStyleName) {
|
|
||||||
_getRowStyleName = options.rowStyleName;
|
|
||||||
}
|
|
||||||
if (options.cellStyleName) {
|
|
||||||
_getCellStyleName = options.cellStyleName;
|
|
||||||
}
|
|
||||||
if (options.textDataAttribute) {
|
|
||||||
textDataAttribute = options.textDataAttribute;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
defaultCurrencyCode = table.dataset["odCurrency"];
|
|
||||||
let sheetName = table.dataset["odSheetname"];
|
|
||||||
if (sheetName) {
|
|
||||||
converter.sheetName = sheetName;
|
|
||||||
}
|
|
||||||
let fixedRows = table.dataset["odFixedRows"];
|
|
||||||
if (fixedRows) {
|
|
||||||
converter.fixedRows = fixedRows;
|
|
||||||
}
|
|
||||||
let fixedColumns = table.dataset["odFixedColumns"];
|
|
||||||
if (fixedColumns) {
|
|
||||||
converter.fixedColumns = fixedColumns;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _addCell(cell) {
|
function _addCell(cell) {
|
||||||
let text = _getCellText(cell);
|
let text = _getCellText(cell);
|
||||||
@ -103,7 +113,10 @@ OpenDocument.OdsConverter.prototype.convert = function (table, options) {
|
|||||||
.addNumberTableCell(odCell);
|
.addNumberTableCell(odCell);
|
||||||
break;
|
break;
|
||||||
case "date":
|
case "date":
|
||||||
let datePattern = "YYYY-MM-DD";
|
let datePattern = cell.dataset["odDatePattern"];
|
||||||
|
if (!datePattern) {
|
||||||
|
datePattern = converter.defaultDatePattern;
|
||||||
|
}
|
||||||
odCell.styleName = styleManager.getAutomaticCellStyleName("date", odCell.styleName, datePattern);
|
odCell.styleName = styleManager.getAutomaticCellStyleName("date", odCell.styleName, datePattern);
|
||||||
xw
|
xw
|
||||||
.addDateTableCell(odCell);
|
.addDateTableCell(odCell);
|
||||||
@ -111,7 +124,7 @@ OpenDocument.OdsConverter.prototype.convert = function (table, options) {
|
|||||||
case "currency":
|
case "currency":
|
||||||
let currencyCode = cell.dataset["odCurrency"];
|
let currencyCode = cell.dataset["odCurrency"];
|
||||||
if (!currencyCode) {
|
if (!currencyCode) {
|
||||||
currencyCode = defaultCurrencyCode;
|
currencyCode = converter.defaultCurrencyCode;
|
||||||
}
|
}
|
||||||
odCell.styleName = styleManager.getAutomaticCellStyleName("currency", odCell.styleName, currencyCode);
|
odCell.styleName = styleManager.getAutomaticCellStyleName("currency", odCell.styleName, currencyCode);
|
||||||
xw
|
xw
|
||||||
@ -128,7 +141,7 @@ OpenDocument.OdsConverter.prototype.convert = function (table, options) {
|
|||||||
if (cellText) {
|
if (cellText) {
|
||||||
return cellText;
|
return cellText;
|
||||||
}
|
}
|
||||||
cellText = cellElement.dataset[textDataAttribute];
|
cellText = cellElement.dataset[converter.textDataAttribute];
|
||||||
if (cellText) {
|
if (cellText) {
|
||||||
return cellText;
|
return cellText;
|
||||||
}
|
}
|
||||||
|
@ -194,23 +194,98 @@ OpenDocument.XmlWriter.prototype.closeStyle = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
OpenDocument.XmlWriter.prototype.addDateStyle = function (datePattern, dataStyleName) {
|
OpenDocument.XmlWriter.prototype.addDateStyle = function (datePattern, dataStyleName) {
|
||||||
this
|
var xmlWriter = this;
|
||||||
|
var length = datePattern.length;
|
||||||
|
var buffer = "";
|
||||||
|
xmlWriter
|
||||||
.startOpenTag("number:date-style")
|
.startOpenTag("number:date-style")
|
||||||
.addAttribute("style:name", dataStyleName)
|
.addAttribute("style:name", dataStyleName)
|
||||||
.endOpenTag()
|
.endOpenTag();
|
||||||
.startOpenTag("number:year")
|
for(let i = 0; i < length; i++) {
|
||||||
.addAttribute("number:style", "long")
|
let char = datePattern.charAt(i);
|
||||||
.closeEmptyTag()
|
let jump = 0;
|
||||||
.addSimpleElement("number:text", "-")
|
switch(char) {
|
||||||
.startOpenTag("number:month")
|
case 'M':
|
||||||
.addAttribute("number:style", "long")
|
jump = _parseMonth(i);
|
||||||
.closeEmptyTag()
|
break;
|
||||||
.addSimpleElement("number:text", "-")
|
case 'D':
|
||||||
.startOpenTag("number:day")
|
jump = _parseDay(i);
|
||||||
.addAttribute("number:style", "long")
|
break;
|
||||||
.closeEmptyTag()
|
case 'Y':
|
||||||
|
jump = _parseYear(i);
|
||||||
|
if (jump === 0) {
|
||||||
|
_buf(char);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
_buf(char);
|
||||||
|
}
|
||||||
|
i = i + jump;
|
||||||
|
}
|
||||||
|
_flush();
|
||||||
|
xmlWriter
|
||||||
.closeTag("number:date-style");
|
.closeTag("number:date-style");
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
|
function _buf(char) {
|
||||||
|
buffer = buffer + char;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _parseMonth(index) {
|
||||||
|
_flush();
|
||||||
|
let jump = 0;
|
||||||
|
let next = index + 1;
|
||||||
|
if ((next < length) && (datePattern.charAt(next) === 'M')) {
|
||||||
|
jump = 1;
|
||||||
|
}
|
||||||
|
_addNumberElement("number:month", (jump === 1));
|
||||||
|
return jump;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _parseDay(index) {
|
||||||
|
_flush();
|
||||||
|
let jump = 0;
|
||||||
|
let next = index + 1;
|
||||||
|
if ((next < length) && (datePattern.charAt(next) === 'D')) {
|
||||||
|
jump = 1;
|
||||||
|
}
|
||||||
|
_addNumberElement("number:day", (jump === 1));
|
||||||
|
return jump;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _parseYear(index) {
|
||||||
|
let next = index + 1;
|
||||||
|
if ((next === length) || (datePattern.charAt(next) !== 'Y')) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_flush();
|
||||||
|
let jump = 1;
|
||||||
|
if (next < (length -2)) {
|
||||||
|
if ((datePattern.charAt(next + 1) === 'Y') && (datePattern.charAt(next + 2) === 'Y')) {
|
||||||
|
jump = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_addNumberElement("number:year", (jump === 3));
|
||||||
|
return jump;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _flush() {
|
||||||
|
if (buffer) {
|
||||||
|
xmlWriter.addSimpleElement("number:text", buffer);
|
||||||
|
buffer = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _addNumberElement(name, isLong) {
|
||||||
|
xmlWriter
|
||||||
|
.startOpenTag(name);
|
||||||
|
if (isLong) {
|
||||||
|
xmlWriter
|
||||||
|
.addAttribute("number:style", "long");
|
||||||
|
}
|
||||||
|
xmlWriter
|
||||||
|
.closeEmptyTag();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
OpenDocument.XmlWriter.prototype.addCurrencyStyle = function (currencyCode, dataStyleName) {
|
OpenDocument.XmlWriter.prototype.addCurrencyStyle = function (currencyCode, dataStyleName) {
|
||||||
|
Loading…
Reference in New Issue
Block a user