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

導入

導入 – Excel ファイルを生成する方法

Spreadsheet_Excel_Writer って何?

Spreadsheet_Excel_Writer は、 COM コンポーネントを必要とせずに Excel ファイルを作成するためのツールです。 Spreadsheet_Excel_Writer の現行版によって生成されたファイルは、 Excel5(BIFF5) フォーマットに相当します。 したがって、そのバージョンのエクセルの持つ機能はすべて使用可能です (ただし、それ以降のバージョンの新機能は利用できません)。

使用法

Spreadsheet_Excel_Writer の一般的な使用法は、 膨大な (あるいはそれほどでもない) 量の情報をスプレッドシート形式に まとめ、そこらじゅうにあふれている Excel (あるいは OpenOffice) のような表計算プログラムで処理しやすくすることです。

それでは、実際どのように使用するのかを見てみましょう。

典型的な使用法

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

// ワークブックを作成します
$workbook = new Spreadsheet_Excel_Writer();

// HTTP ヘッダを送信します
$workbook->send('test.xls');

// ワークシートを作成します
$worksheet =& $workbook->addWorksheet('My first worksheet');

// データを書き込みます
$worksheet->write(00'Name');
$worksheet->write(01'Age');
$worksheet->write(10'John Smith');
$worksheet->write(1130);
$worksheet->write(20'Johann Schmidt');
$worksheet->write(2131);
$worksheet->write(30'Juan Herrera');
$worksheet->write(3132);

// ファイルを送信します
$workbook->close();
?>

ワークシートの前に、まずワークブックを作成したということに注意しましょう。 ワークシートはすべてワークブック内に含まれています。 また、ひとつのワークブックの中には複数のワークシートが含まれているかもしれません。

Spreadsheet_Excel_Writer を使用するプログラムを 書く際に注意すべき点がもうひとつあります。それは、ワークシートを 作成する際にアンパサンド符号 (&) を使用するということです。 アンパサンドは、ワークシートオブジェクトをコピーするのではなく その参照を使用するということを意味します。もし何のことだか さっぱりわからないとしても心配することはありません。 ワークシートを作成するために addWorksheet() をコールしたり 書式設定を作成するために addFormat() をコールしたりする際には必ずアンパサンドを使用する、とだけ 覚えておきましょう。

ファイルへの保存

さらに次の行が気になる人もいるでしょう。


// HTTP ヘッダを送信します
$workbook->send('test.xls');

これは、ブラウザにスプレッドシートを送信しているということを意味します。 単にスプレッドシートをマシン上に保存したいだけの場合には どうすればいいのでしょうか。そのためには、単にごの行を省略し、 その代わりに有効なファイルパスをワークブックのコンストラクタに 与えればよいのです。

たとえば、さきほどの例で作成したスプレッドシートを 'test.xls' という名前で保存したければ、以下のように記述します。

ファイルへの保存

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

// ファイルへのパスをここで指定します
$workbook = new Spreadsheet_Excel_Writer('test.xls');

$worksheet =& $workbook->addWorksheet('My first worksheet');

$worksheet->write(00'Name');
$worksheet->write(01'Age');
$worksheet->write(10'John Smith');
$worksheet->write(1130);
$worksheet->write(20'Johann Schmidt');
$worksheet->write(2131);
$worksheet->write(30'Juan Herrera');
$worksheet->write(3132);

// この場合でも、ワークブックを明示的に閉じる必要があります
$workbook->close();
?>

その他の教本

Spreadsheet_Excel_Writer の書式設定 (フォント・セルの色・文字の配置など) に関して学習したければ、 ここでフォーマット教本をチェックすることができます。

Spreadsheet_Excel_Writer (Previous) スプレッドシート内のセルの書式を設定する方法 (Next)
Last updated: Sun, 21 Dec 2014 — 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-jj@gmx.de
If you have issues with this PEAR package check this out: http://phpexcel.codeplex.com/
Note by: info@joomla-r-us.com
Thanks for improving the original spreadsheet-excel-writer!

I have integrated the PEAR spreadsheet-excel-writer into a Joomla component. The component allows you to define Worksheets which are populated with data from the database, by specifying your own custom SQL queries. One or more Worksheets can then be assembled into a Workbook - all in a nice user friendly UI within the Joomla framework.

If you have a Joomla website, or can set one up, please check out:
http://joomla-r-us.com

Note by: holubecml@gmail.com
Is it possible to let the script generate an xls file from html form and send it automatically as an attachement in an email?
Thans a lot,
Miro, Slovakia
Note by: fatrandy13@yahoo.com (Mike M.)
A simple chart/graph function would be great... You specify the rows and columns for the chart and chart type (bar, line, pie, etc...)


// make it a worksheet of its own
$chart_worksheet =& $workbook->addWorksheet($my_chart);

// add it to an existing worksheet...
$worksheet->addGraph(int $startCol, int $endCol, int $startRow, int $endRow, mixed $graphType);
Note by: chris@pineconehill.com
As of PHP5, all objects are passed as reference, so there's no need to use '=&'.
Note by: alangrus
CSVtoXLS.php Program Notes

I am often asked to provide output from the database in a spreadsheet XLS file. I built a shell around spreadsheet-excel-writer to use as a production conversion tool, to accomplish high format XLS file creation from an ASCII CSV file. As a PHP program, it should work on any O/S that you can install PHP 4.3 or better onto.

CSVtoXLS.php is a PHP utility to convert CSV data into business class XLS spreadsheet files, tested as compatible with OpenOffice 2.0 Calc and Excel 2000. It is provides for a high level of spreadsheet formatting and also offers formulas. CSVtoXLS.php takes advantage of those features and provides meaningful formatting and a simple Column SUM automatically generated at the bottom of any Decimal Column.

See Narrative and Download at http://performantsystems.com/CSVtoXLS.html
- Alan Gruskoff