previousWorksheet::writeNumber (Previous) (Next) Worksheet::writeNotenext

View this page in Last updated: Sun, 18 Oct 2009
English | Brazilian Portuguese | Chinese | Dutch | French | German | Hungarian | Japanese | Polish | Russian | Spanish | Turkish

Worksheet::writeString

Worksheet::writeString – Écrit une chaîne à la ligne et la colonne spécifiés (indexé à partir de zéro)

Synopsis

require_once "Spreadsheet/Excel/Writer.php";

void Worksheet::writeString ( integer $row , integer $col , string $str , mixed $format=0 )

Description

Écrit une chaîne à la ligne et la colonne spécifiés (indexé à partir de zéro). NOTE : il y a dans Excel 5 une limite à 255 caractères. $format est optionnel. Retourne 0 : normal -1 : nombre d'arguments insuffisant -2 : ligne et colonne en dehors de l'intervalle -3 : chaîne tronquée à 255 caractères

Parameter

  • integer $row - Ligne indexé à partir de zéro

  • integer $col - Colonne indexée à partir de zéro

  • string $str - La cha$ine à écrire

  • mixed $format - Le format XF pour la celulle

Note

This function can not be called statically.

Example

Exemple avec writeString()

<?php

?>
previousWorksheet::writeNumber (Previous) (Next) Worksheet::writeNotenext

Download Documentation Last updated: Sun, 18 Oct 2009
Do you think that something on this page is wrong? Please file a bug report or add a note.
User Notes:
Note by: alan@akbkhome.com
There appears to be a limit even with $workbook->setVersion(8); of somewhere over 2048 characters (eg 4096 breaks output of future lines, 2048 works)
Note by: Jason M
After playing around with the 'newline' problem I discovered the real solution is using "\n" and also setting 'TextWrap' on the cell. For example:

$fmt = $book->addFormat(array('TextWrap' => 1));
$sheet->write(0,0, "Line1\rLine2\rLine3", $fmt);

If you don't enable TextWrap on the cell then the text will not break when viewed in the spreadsheet table (but it will break if you edit it in the formula bar).

I hope this helps those that continue to have this problem.
Note by: user@example.com
Thanks for the ' $workbook->setVersion(8); ' tip. It really solved my problem, now I can export long strings into cells for .csv files!!
Note by: user@example.com
For working on strings longer than 255 chars:

$workbook->setVersion(8); // Use Excel97/2000 Format
$worksheet->writeString(0, 0, $str);
Note by: marisa@datasmithconsulting.net
Is there any way around the 255 limit on a cell? If I have a file open in Excel, I can paste more than 255 characters into a cell, but I can't seem to accomplish this when generating a spreadsheet with this package. I could do it as a Note, but I really want to have the text in a cell.
Note by: basstradamus@trygues.com
To break a line use: $twoLines = "line1".chr(10)."line2".
Note by: chris@chris-hughes.net
You need to define a wrap format for Excel
e.g.

$wrap_format =& $xls->addFormat();
$wrap_format->setTextWrap();

$sheet->writeString(0,4,"Count \n Items, $wrap_format");
Note by: kirh
Hi,

just write \x0a for the new line.
Note by: mrjoops@yahoo.no
I tried to write a string with some line breaks in. So I add some "\n" to my string.
The result in Openoffice looks exactly like I want, however in Excel, all the text appear on the same line but when I edit the cell, the text appears with the line breaks and I have to effectively "enter" the edited text to make it display correctly on the worksheet.
Is there a method to make the text display correctly on Excel opening ?
Note by: cconstantine
mrjoops linebreak question: Try including DOS-style line breaks. Instead of adding the newline character ("\n") to your string, try adding the CARRIAGE-RETURN/NEWLINE character pair ("\r\n").