DokuWiki

It's better when it's simple

User Tools

Site Tools


Sidebar

Translations of this page?:

Learn about DokuWiki

Advanced Use

Corporate Use

Our Community


Follow us on Facebook, Twitter and other social networks.

Our Privacy Policy

tips:xls2wiki

This is an old revision of the document!


xls2wiki

~~UP~~

Abstract

This is a simple script that converts copied data from xls to DokuWiki's Table format. The weird UTF-8 code you see is a russian explanation.

Just copy cells in Excel and paste it, then press 'convert'

code

<?php header("Content-type: text/html; charset=UTF-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<script type="text/javascript" charset="utf-8">
	function selText()
	  {
	  document.getElementById("txt1").select()
	  }
	</script>
 
		<style type="text/css">
		body {
			font: .8em "Trebuchet MS", Verdana, Arial, Sans-Serif;
			text-align: center;
			color: #333;
			background-color: #fff;
			margin-top: 0em;
		}
 
		h1 {
			font-size: 2em;
			padding: 0;
			margin: 0;
		}
 
		h5 {
			font-size: 1em;
			color: #09c;
			font-weight: bold;
		}
 
		form {
			background-color: #eee;
			border: 1px solid #ccc;
			margin-left: auto;
			margin-right: auto;
			padding: 1em;
		}
 
 
		a {
			color: #09c;
			text-decoration: none;
			font-weight: bold;
		}
 
 
		</style>
 
</head>
	<?
		$s = $_POST['s'];
		$fromto = $_POST['fromto'];
 
		if ($fromto=="E2W"){
			$s = str_replace("\r\n", " |\n| ", $s);
			$s = str_replace("\t", " | ", $s);
			$s = str_replace("|  |", "| . |", $s);
			$s = str_replace("|  |", "| . |", $s);
			$s = str_replace("|  |", "| . |", $s);
			$s = str_replace("|  |", "| . |", $s);
			$s = "| ".$s;
			$s = substr($s,0,-2); //get rid of last newline conversion
		}else{
			$s = str_replace("^", "|", $s);
			$s = str_replace("|\r\n|", "\r\n", $s);
			$s = str_replace("\r\n ", "\r\n", $s);
			$s = str_replace(" |", "|", $s);
			$s = str_replace("| ", "|", $s);
			$s = str_replace("|", "\t", $s);
			$s = substr($s,1); // get rid of first | without /r/n
 
		}
 
	?>
<body onload="selText()">
<center>
<h5>WIKI2EXCEL converter</h5>
Copy and paste your Excel or Wiki table below and press [Convert!]<br/>
Скопируйте и вставьте таблицу из  Excel или Wiki и нажмите [Convert!] (конвертировать)
	<form method=POST action="">
		<input type="radio" name="fromto" value="E2W" checked>Excel » Wiki<br>
		<input type="radio" name="fromto" value="W2E">Wiki » Excel<br>
		<INPUT TYPE=SUBMIT VALUE="Convert!"><br/> 
		<textarea id="txt1" name="s" wrap="off" cols=80 rows=50 style="width:800; height:450"><? echo $s; ?></textarea>
	</form>
<span style="font-size:80%">
<strong>Version 0.1 : </strong>
<ul>
<li>Headers from wiki2excel will not be converted properly</li>
<li>Links with alternative text (like <i>[[link|alt.text]] ) will not convert properly</li>
</ul>
</span>
</center>
</body></html>

Comments Support Wiki header on first Line

I have find this script helpfull
I would like just to add this lines to put the first line like an header :

			//explode the source by line with the use of regular expressions
 
			$arrayS = preg_split ("/[\n,]+/", $s);
 
			$nb_lines = count ($arrayS)-1;
			$s = $s . $nb_lignes;
			$s = ""; // we clean the text
			foreach ( $arrayS as $key => $lines ){
			if ($key == 0) {
 
                        //we put the header here on the first line	
                      $lines = str_replace("|", "^", $lines);		
 
			}//end if
			$s = $s . $lines .  "\n";
			}//end for
 
			$s = substr($s,0,-2); //get rid of last newline conversion

finaly the code with english / french / russian translation,
empty cells stay empty (no “ . ”), first line become header :

<?php header("Content-type: text/html; charset=UTF-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<script type="text/javascript" charset="utf-8">
	function selText()
	  {
	  document.getElementById("txt1").select()
	  }
	</script>
 
		<style type="text/css">
		body {
			font: .8em "Trebuchet MS", Verdana, Arial, Sans-Serif;
			text-align: center;
			color: #333;
			background-color: #fff;
			margin-top: 0em;
		}
 
		h1 {
			font-size: 2em;
			padding: 0;
			margin: 0;
		}
 
		h5 {
			font-size: 1em;
			color: #09c;
			font-weight: bold;
		}
 
		form {
			background-color: #eee;
			border: 1px solid #ccc;
			margin-left: auto;
			margin-right: auto;
			padding: 1em;
		}
 
 
		a {
			color: #09c;
			text-decoration: none;
			font-weight: bold;
		}
 
 
		</style>
 
</head>
	<?
		$s = $_POST['s'];
		$fromto = $_POST['fromto'];
 
		if ($fromto=="E2W"){
 
 
			$s = str_replace("\r\n", " |\n| ", $s);
			$s = str_replace("\t", " | ", $s);
			//$s = str_replace("|  |", "| . |", $s);
 
			$s = "| ".$s;
			$s = substr($s,0,-2); //get rid of last newline conversion
 
 
			//explode the source by line
			$arrayS = preg_split ("/[\n,]+/", $s);
			$nb_lines = count ($arrayS)-1;
			$s = $s . $nb_lignes;
			$s = "";
			foreach ( $arrayS as $key => $lines ){
			if ($key == 0) {
			$lines = str_replace("|", "^", $lines);			
			}//end if
			$s = $s . $lines .  "\n";
			}//end for
 
			$s = substr($s,0,-2); //get rid of last newline conversion
		}else{
			$s = str_replace("^", "|", $s);
			$s = str_replace("|\r\n|", "\r\n", $s);
			$s = str_replace("\r\n ", "\r\n", $s);
			$s = str_replace(" |", "|", $s);
			$s = str_replace("| ", "|", $s);
			$s = str_replace("|", "\t", $s);
			$s = substr($s,1); // get rid of first | without /r/n
 
		}
 
	?>
<body onload="selText()">
<center>
<h5>WIKI2EXCEL converter</h5>
 
Copy and paste your Excel or Wiki table below and press [Convert!]<br/>
Copier et coller votre Table Excel ou Wiki dans le cadre ci-dessous et cliquez sur [Convert!]<br/>
Скопируйте и вставьте таблицу из  Excel или Wiki и нажмите [Convert!] (конвертировать)
	<form method=POST action="">
		<input type="radio" name="fromto" value="E2W" checked>Excel » Wiki<br>
		<input type="radio" name="fromto" value="W2E">Wiki » Excel<br>
		<INPUT TYPE=SUBMIT VALUE="Convert!"><br/> 
		<textarea id="txt1" name="s" wrap="off" cols=50 rows=50 style="width:400; height:450"><? echo $s; ?></textarea>
	</form>
<span style="font-size:80%">
<strong>Version 0.1 : </strong>
<ul>
<li>Headers from wiki2excel will not be converted properly</li>
<li>Links with alternative text (like <i>[[link|alt.text]]</i> ) will not convert properly</li>
</ul>
</span>
</center>
</body></html>

Installation

:?: Please forgive such a n00b question, but how does one install this helpful Trick? A small installation section would be extremely helpful. ;-)

My n00b answer :

use iframe….

create a php page somewhere into your website dokuwiki root and put the code inside.

Use iframe to include this php page into a wiki page. Look to this plugins if you hate html :/—> iframe

you can not try to include directly the code in a wiki page either : something like :

<php>
Put the code here//§
</php>

Because the page use little javascript tricks.


Discussion

I've installed iframe, but I'm kind of stuck how can I add the php file on the page I want to embed an excel spreadsheet. Can anyone help? Thx in adv.

Remarks

If you like this you probably love this HTML converter as well : http://diberri.dyndns.org/wikipedia/html2wiki/index.html

tips/xls2wiki.1255619403.txt.gz · Last modified: 2009-10-15 17:10 by 216.16.224.140