thefortrees Posted October 12, 2007 Share Posted October 12, 2007 Hi all, I am writing to an XML file using PHP then importing the file into Excel as a spreadsheet. Every thing is working fine EXCEPT... I need linebreaks within a string (ie - one cell) and can not figure out/find how to do this. \n and the like do not work properly. Any suggestions? Quote Link to comment https://forums.phpfreaks.com/topic/72943-line-break-within-excel-cell/ Share on other sites More sharing options...
harristweed Posted October 12, 2007 Share Posted October 12, 2007 I think (not sure ) that a tab produces a line break in excel: Try '" \t " Quote Link to comment https://forums.phpfreaks.com/topic/72943-line-break-within-excel-cell/#findComment-367882 Share on other sites More sharing options...
cmgmyr Posted October 12, 2007 Share Posted October 12, 2007 no... \t inserts a new tab (cell to the right) and \n drops to a new row (record) Quote Link to comment https://forums.phpfreaks.com/topic/72943-line-break-within-excel-cell/#findComment-367883 Share on other sites More sharing options...
thefortrees Posted October 12, 2007 Author Share Posted October 12, 2007 Is there any way to define the line break in hexadecimal? I think it is 0x0D 0x0A Quote Link to comment https://forums.phpfreaks.com/topic/72943-line-break-within-excel-cell/#findComment-367885 Share on other sites More sharing options...
cmgmyr Posted October 12, 2007 Share Posted October 12, 2007 try \r i think thats a "return" Quote Link to comment https://forums.phpfreaks.com/topic/72943-line-break-within-excel-cell/#findComment-367886 Share on other sites More sharing options...
Psycho Posted October 12, 2007 Share Posted October 12, 2007 How are you creating the Excel file? If you are creating it as a CSV file and just naming it as xls, then that won't work. Here is a function I use and can insert a line break using \n: <? // Functions for export to excel. function xlsBOF() { echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); return; } function xlsEOF() { echo pack("ss", 0x0A, 0x00); return; } function xlsWriteNumber($Row, $Col, $Value) { echo pack("sssss", 0x203, 14, $Row, $Col, 0x0); echo pack("d", $Value); return; } function xlsWriteLabel($Row, $Col, $Value ) { $L = strlen($Value); echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L); echo $Value; return; } header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download");; header("Content-Disposition: attachment;filename=orderlist.xls "); header("Content-Transfer-Encoding: binary "); xlsBOF(); $text = "This is a \n label with \n line breaks"; $number = "12345"; xlsWriteLabel(0,0,$text); xlsWriteNumber(0,1,$number); xlsEOF(); exit(); ?> Quote Link to comment https://forums.phpfreaks.com/topic/72943-line-break-within-excel-cell/#findComment-367890 Share on other sites More sharing options...
thefortrees Posted October 12, 2007 Author Share Posted October 12, 2007 I write to an XML file, then I import the XML file with Excel Quote Link to comment https://forums.phpfreaks.com/topic/72943-line-break-within-excel-cell/#findComment-367895 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.