Spreadsheet to Table Plugin
This was an extremely quick project to turn spreadsheet data into an XHTML table. The plugin is quite simple to use, just copy some data from a spreadsheet ( or the visible part of an XHTML table) and paste it into a blog post between the tags [table] and [/table] (make sure that columns are tab separated and rows are on their own line). This is a no frills plugin. The first row is used as the column names and is added to a thead tag. Anything can be added to the [table] tag after “table” and it will become the table’s caption. EX [table “This is an example table”]
So this:
[table "This is an example table"]
gf sfg sfcx dfg
asd sd dsfs
xcv fds sgdf
dfg dfg dfg
dfg dfg dfg
[/table]
Becomes:
gf | sfg | sfcx | dfg |
asd | sd | dsfs | |
xcv | fds | sgdf | |
dfg | dfg | dfg | |
dfg | dfg | dfg |
Installation:
- Copy and Paste the contents of the texbox below into a .php file.
Upload and activate.
<?php /* Plugin Name: Tabeler Plugin URI: http://anthologyoi.com/plugins/ Description: This plugin allows you to copy data directly from a spreadsheet and paste it into your blog, and will automatically create a table for it. Version: 0.1 Author: Aaron Harun. Author URI: http://anthologyoi.com */
add_filter('the_content','tabler_find',1); add_filter('the_excerpt','tabler_find',1);
function tabler_find($content) { return preg_replace_callback('![table([^]])](?:\r\n|\n|\r|)([\S\s]?\t[\S\s]*?)(?:\r\n|\n|\r|)[/table]!ims', 'tabler_callback', $content); }
function tabler_callback($matches) {
$pos_table = $matches[2]; if(strpos($pos_table,chr(13)) !== FALSE){ $rows = explode(chr(13),$pos_table); }else{ $rows = explode("\n",$pos_table); } if(is_array($rows)){ if($rows > 1){ $table .= '<table>'; foreach($rows as $row){ $i++; $cols = explode("\t",$row); if($i==1) $table .= '<thead>'; $table .= '<tr>'; foreach($cols as $col){ $table .= '<td>'.$col.'</td>'; } $table .= '</tr>'; if($i==1){ $table .= '</thead>'; $table .= '<tbody>'; } } $table .= '</tbody>'; $table .= '</table>'; return $table; } }
}
?>