1. Introduction
  2. Tutoriel sur le
    formattage
  3. Workbook::close
  4. Workbook::&addWorksheet
  5. Workbook::&addFormat
  6. Workbook::&setTempDir
  7. Workbook::setCustomColor
  8. Worksheet::getName
  9. Worksheet::
    setInputEncoding
  10. Worksheet::select
  11. Worksheet::activate
  12. Worksheet::setFirstSheet
  13. Worksheet::protect
  14. Worksheet::setColumn
  15. Worksheet::setSelection
  16. Worksheet::freezePanes
  17. Worksheet::thawPanes
  18. Worksheet::setPortrait
  19. Worksheet::setLandscape
  20. Worksheet::setPaper
  21. Worksheet::setHeader
  22. Worksheet::setFooter
  23. Worksheet::
    centerHorizontally
  24. Worksheet::
    centerVertically
  25. Worksheet::setMargins
  26. Worksheet::setMargins_LR
  27. Worksheet::setMargins_TB
  28. Worksheet::setMarginLeft
  29. Worksheet::
    setMarginRight
  30. Worksheet::setMarginTop
  31. Worksheet::
    setMarginBottom
  32. Worksheet::repeatRows
  33. Worksheet::repeatColumns
  34. Worksheet::printArea
  35. Worksheet::hideGridlines
  36. Worksheet::
    printRowColHeaders
  37. Worksheet::fitToPages
  38. Worksheet::
    setHPagebreaks
  39. Worksheet::
    setVPagebreaks
  40. Worksheet::setZoom
  41. Worksheet::setPrintScale
  42. Worksheet::write
  43. Worksheet::writeNumber
  44. Worksheet::writeString
  45. Worksheet::writeNote
  46. Worksheet::writeBlank
  47. Worksheet::writeFormula
  48. Worksheet::writeUrl
  49. Worksheet::setRow
  50. Worksheet::mergeCells
  51. Worksheet::insertBitmap
  52. Worksheet::setOutline
  53. Spreadsheet_Excel_Writer
  54. send
  55. rowcolToCell
  56. Format::setAlign
  57. Format::setVAlign
  58. Format::setHAlign
  59. Format::setMerge
  60. Format::setBold
  61. Format::setBottom
  62. Format::setTop
  63. Format::setLeft
  64. Format::setRight
  65. Format::setBorder
  66. Format::setBorderColor
  67. Format::setBottomColor
  68. Format::setTopColor
  69. Format::setLeftColor
  70. Format::setRightColor
  71. Format::setFgColor
  72. Format::setBgColor
  73. Format::setColor
  74. Format::setPattern
  75. Format::setUnderline
  76. Format::setItalic
  77. Format::setSize
  78. Format::setTextWrap
  79. Format::setTextRotation
  80. Format::setNumFormat
  81. Format::setStrikeOut
  82. Format::setOutLine
  83. Format::setShadow
  84. Format::setScript
  85. Format::setFontFamily

Format::setNumFormat

Format::setNumFormat – Définit le format numérique

Synopsis

require_once "Spreadsheet/Excel/Writer.php";

void Format::setNumFormat ( string $num_format )

Description

Définit le format numérique. Il peut être une date, une heure, etc. La table suivante liste les valeurs possibles pour le paramètre $num_format et les types correspondants qu'un format numérique attend en tant qu'arguments.

Formats et types numériques
0 Décimal Le nombre de zéros spécifie le nombre de digits à afficher
0.00 Décimal Le nombre de zéros après le point des décimals spécifie le nombre de décimals à afficher
#.## Décimal Le nombre de dièses après le point des décimals spécifie le nombre maximal de décimals à afficher
0% Pourcentage Le nombre de zéros spécifie le nombre de digits à afficher
0.000% Pourcentage Le nombre de zéros après le point des décimals spécifie le nombre de décimals à afficher
$#.#;[Red]($#.#) monaitaire Les zéros et les signes dièses ont la même signification que pour les autres formats
??/?? Fraction Le nombre de points d'interrogations dans le dénominateur déterminent la précision (nombre maximal de digits dans le dénominateur)
# ??/?? Fraction Une fraction avec une partie entière. Les zéros et les signes dièses sont utilisés pour définir la partie entière, et ils ont la même signification que pour les autres formats
0.00E+# Scientifique La base de notation scientifique et exponentielle sont formattés en appliquant les mêmes règles que pour les décimals. Pour la notation scientifique, les zéros et les signes dièses ont une signification équivalente
D-MMM-YY Date Une date représentée dans la notation donnée. Les mois peuvent être sur un ou deux digits, ou sur trois lettres représentant le mois. Les années peuvent avoir 2 ou 4 digits. L'argument formatté en tant que date est considéré représenter le nombre de jours depuis le 30 Décembre 1899 (jour zéro pour Excel). Pour les dates antérieures au jour zéro d'Excel, les nombres négatifs peuvent être utilisés
D/M/YYYY h:mm:ss Date/Heure Une date représentant la notation donnée. L'argument formatté en tant que date est considéré représenter le nombre de jours depuis le 30 Décembre 1899 (jour zéro pour Excel)
h:mm:ss AM/PM Heure Une heure représentant la notation donnée. Soyez prudent, l'argument formatté en tant qu'heure doit être donné en nombre de jours. Par exemple, un argument de 0.5 sera représenté comme '12:00:00 PM'

Les informations ci-dessus proviennent de la documentation d'OpenOffice sur le format de fichier Excel (http://sc.openoffice.org/excelfileformat.pdf).

Parameter

  • string $num_format - Le format numérique

Note

This function can not be called statically.

Example

Exemple avec setNumFormat()

<?php
require_once 'Spreadsheet/Excel/Writer.php';

$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();

// nous affichons des dates avec le mois sur trois lettres et l'année sur 4 digits
$date_format =& $workbook->addFormat();
$date_format->setNumFormat('D-MMM-YYYY');

// nombre de secondes dans une journée
$seconds_in_a_day 86400;
// Timestamps Unix en différence de date Excel, en secondes
$ut_to_ed_diff $seconds_in_a_day 25569;

// Affiche le jour zéro pour Excel
$worksheet->write(00"Jour zéro d'Excel");
$worksheet->write(010$date_format);

// affiche la date du jour
$now time();
$worksheet->write(10"Date du jour :");
$worksheet->write(11, ($now $ut_to_ed_diff) / $seconds_in_a_day$date_format);

$workbook->send('num_formatting.xls');
$workbook->close();
?>
Définit l'orientation du texte (Previous) Définit la police de caractères comme barrée (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: daniel@abrich.eu
The problem is that I can't use polish currency "z?" as a NumFormat. Any suggestions?
Note by: i@peter.am
Full table of formats:
http://img808.imageshack.us/img808/5599/formats.png
Note by: sascha_moetsch@hotmail.com
The format can also be defined by a number, so f.e.
$f_standard->setNumFormat(0);
gives you a Standard-Number.

A complete list of all indexes can be found here:
http://openbook.galileocomputing.de/php_pear/05_0_file_formats-007.htm
(in Table 5.8)
Note by: amit.more@xecomit.com
I have generated the excel spreadsheet using Spreadsheet_Excel_writer. Every thing is working fine in Openoffice, but in MS Office when I try to change cell format lets say For currency then every time i am getting this error "Style 'Currency' not found" or for comma "Style 'Comma' not found"?
Suggestions are welcome.
Note by: a.eibach@gmx.net
After 45 (!) minutes of searching, I finally found the solution to my problem in the PERL original of SEW.
I hope this will help out other desperate folks here.

My problem was that the numbers looked OK in Excel if you didn't touch a thing, but once you moved around in the cells, Excel (I use 2007) always kept transforming the cell to a sort of date format; nor were I able to explicitly set TEXT format, i. e. absolutely static.

The trick is simple, and of course, magnificent: :)

$fmt =& $xls->addFormat();
$fmt->setNumFormat('@');

Now your TEXT will stay TEXT and even Excel will recognize the format as text, if you check back in cell properties.
Note by: user@example.com
As the time or strtotime functions generate timestamp according to the timezone setting, the excel date given by the sample code might not be correct for computers not having the timezone as UTC, so add the following codes at the beginning.


if (function_exists('date_default_timezone_set')) {
date_default_timezone_set('UTC');
}
Note by: zetflo@gmail
Hi,

perhaps, this library support only the symbol $.

I've the same problem with symbol ¤
Note by: oldhand@fusemail.com
Noticed some strange behaviour with this when setting more complicated number formats e.g. currency

I was trying to set currency to display for UK pounds as follows £159,000

The format for this is £#,##0;-£#,##0

When setting this the format appeared to get corrupted by character encoding as my PHP file was UTF8 format.

If I forced the formatting to ISO-8859-1 before inserting this everything worked - see example below:

$myNumFormat = '£#,##0;-£#,##0';
$iso88591Format = iconv("utf-8","iso-8859-1",$myNumFormat);
$cFormat =& $xls->addFormat();
$cFormat->setNumFormat($iso88591Format);

Hope that helps saves someone else a few hours!