===== CSV 2 Table formatter ===== >>==See Also== ~- [[OnegWRNoDefaultCodeClass | NoDefaultCodeClass]] - CSS class workaround. ~- ShowCsv - HandleCsvData - More advanced code by NilsLindenberg. >>//NOT Included in any Wikka version yet//{{lastedit}} ==What== ~- This formatter would allow you to convert inline csv data into a table. ==Example== ~- The code: ~~%%(csv) ~~;***a***;"***b***";***c*** ~~***1***;d;"e";f ~~#test ~~ ~~***2***;g;;h ~~***3***;I;J;"K" ~~%% ~- Would give this as result: ~~""
 abc
1def
2g h
3IJK
"" ==Features== ~- Alternating row background. (hint: only use odd/even lines for a fast alternative layout) ~- Ignores empty lines or lines starting with an '#' (comments). ~~To not disturb the alternated layout: add 2 (comment)lines... ~- The " before and after a cell is auto-removed. ~- You can make the background darker by wrapping the cell in "***"-tags. ==To Do== ~- Add more cell options: alignment, bold, Italic, ... ~- Find a way to implement a "\n" in a cell (every call to ""$this->Format()"" is another include of formatters/wakka.php, so I would like to find another way...) ~- Fix the ';' in a cell ("">"",...) ~- Use more CSS classes ==Installation== ~- Copy the code below into a file named ##formatters/csv.php## ~- And give it the same file permissions as the other files in that directory. ==Code== %%(php) $csv_line){ if(preg_match("/^#|^\s*$/",$csv_line)) continue; if( $csv_printheader == 0){ print "\n"; $csv_printheader=1; } print ($csv_n%2) ? "" : ""; foreach(split(";", $csv_line) as $csv_nn => $csv_cell){ if(preg_match("/^\s*$/",$csv_cell)){ print ""; }elseif(preg_match("/^(\"?)\*\*\*(.*?)\*\*\*(\"?)$/",$csv_cell,$matches)){ print ""; }elseif(preg_match("/^(\"?)(.*?)(\"?)$/",$csv_cell,$matches)){ print ""; }else{ print ""; } } print "\n"; } if( $csv_printheader == 1) print "
 ". $this->htmlspecialchars_ent($matches[2])."".$this->htmlspecialchars_ent($matches[2])."".$this->htmlspecialchars_ent($csv_cell)."
\n"; ?>%% ==History== ~- Published on main site (2005-05-09) - OnegWR ==Bugs== ~- Remove the the default yellow background via the [[OnegWRNoDefaultCodeClass | NoDefaultCodeClass]] workaround. ~- If there is an ';' within a cell, this script will make 2 cell from it. ---- CategoryUserContributions