PHPでワードファイルを生成する
言うまでもなく、この機能はよく見られ、実用的で、1つのwebプラットフォームがうまくいけば、ユーザーが記入したデータに基づいてwordドキュメントを自動的に生成するなど、ユーザーのために多くのことを省くことができます.
この2,3日誰かが必要として、私も暇に簡単なdemoを作って、コードもネットからいくつか探して、ネット上の文章の大部分は比較的に乱れて、ここで少し記録します.
1、純php生成、ob_を用いたstart()とob_get_contents()、使い方ob_start()生成後、header後のecho文はバッファに格納され、ob_get_contents()は、バッファのデータを取得するために使用されます.
2、HTMLページをwordに自動的に保存し、主にヘッダー(「Content-Type:アプリケーション/msword」)である.
この2,3日誰かが必要として、私も暇に簡単なdemoを作って、コードもネットからいくつか探して、ネット上の文章の大部分は比較的に乱れて、ここで少し記録します.
1、純php生成、ob_を用いたstart()とob_get_contents()、使い方ob_start()生成後、header後のecho文はバッファに格納され、ob_get_contents()は、バッファのデータを取得するために使用されます.
<?php
class word
{
function start()
{
ob_start();
print'<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">';
}
function save($path)
{
/*This echo will output to word.*/
echo "something";
/**/
print "</html>";
$data = ob_get_contents();
ob_end_clean();
$this->wirtefile ($path,$data);
}
function wirtefile ($fn,$data)
{
$fp=fopen($fn,"wb");
fwrite($fp,$data);
fclose($fp);
}
}
$word=new word;
$word->start();
echo $cout;
$wordname="word/ .doc";
$word->save($wordname);
?>
2、HTMLページをwordに自動的に保存し、主にヘッダー(「Content-Type:アプリケーション/msword」)である.
<?php
header("Content-type: text/html; charset=utf8"); //
header("Content-Type:application/msword"); // word
header("Content-Disposition:attachment;filename=".mb_convert_encoding("UUUU","gbk","utf8").".doc"); // word
header("Pragma:no-cache");
header("Expires:0");
?>
<html>
<meta http-equiv=Content-Type content="text/html; charset=utf8">
<style media="print" type="text/css">
<!--
body {
margin-left: 0cm;
margin-top: 0cm;
margin-right: 0cm;
margin-bottom: 0cm;
}
-->
</style>
<body>
<table width="100%" style='border-collapse:collapse;'>
<tr>
<td width='24%' bgcolor='#CCCCCC' style='border:1px solid #000000;font-size:12px;'> </td>
<td width='13%' bgcolor='#CCCCCC' style='border:1px solid #000000;font-size:12px;'> </td>
<td width='32%' bgcolor="#CCCCCC" style='border:1px solid #000000;font-size:12px;'> </td>
<td width='11%' bgcolor="#CCCCCC" style='border:1px solid #000000;font-size:12px;'> </td>
<td width='20%' bgcolor="#CCCCCC" style='border:1px solid #000000;font-size:12px;'> </td>
</tr>
<?php
/*you can use php+SQL to fetch data.*/
?>
<tr>
<td style='border:1px solid #000000;font-size:12px;'>HHHH<?php /*echo data*/?></td>
<td style='border:1px solid #000000;font-size:12px;'>IIIIII<?php /*echo data*/?></td>
<td style='border:1px solid #000000;font-size:12px;'>UUUU<?php /*echo data*/?></td>
<td style='border:1px solid #000000;font-size:12px;'>PPPPP<?php /*echo data*/?></td>
<td style='border:1px solid #000000;font-size:12px;'> </td>
</tr>
<?php
/*using in while*/
?>
</table>
</body>
</html>