ホームページ >バックエンド開発 >PHPチュートリアル >php 出力 Excel 形式に関連する問題

php 出力 Excel 形式に関連する問題

WBOY
WBOYオリジナル
2016-06-13 13:19:101068ブラウズ

PHP 出力 Excel 形式の問題

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
@$con = mysql_connect("localhost","root","mysql");
mysql_query('set names gb2312');
if (!$con){
    die("数据库链接失败:".mysql_error());
    exit;
}
$data = mysql_select_db("berecord",$con);

//include('conn.php');
//mysql_query('set names gb2312');
if(!$data){
    echo mysql_error();
    mysql_close($con); //关闭数据库链接
    exit;
}

else if($name=="" && $carnumber=="" && $do=="" &&  $usercode==""){
    //当四项数据全为空时
$sql = "select * from record;  
$result = mysql_query($sql,$con);

$fp = fopen("php://output","a");

$head = array("年","月","日","周","姓名","年龄","班级","学号","上/下学时间","学习记录","体育成绩","学习汇报","学习总结")";
foreach($head as $i => $v){
    $head[$i] = iconv('utf-8','gb2312',$v);    //格式转换
    //$head[$i] = mb_convert_encoding("$v","utf-8","gb2312");
}

fputcsv($fp,$head);

while($row = mysql_fetch_array($result,MYSQL_ASSOC)){
    //fputcsv($fp,array_map('zero_change',$row));
    fputcsv($fp,$row);
    //echo "<br>"; 没有必要 在$row输出时就实现了
}


mysql_close($con);
}
?>



ここでのエクスポートは 13 列ですが、各列の幅は次のようになります。同じです。ここで各列を希望の幅に設定したいのですが、どのように調整すればよいですか?
よく学習するという問題もあります。たとえば、データベース内の私の学生 ID が 0015132 である場合、csv にエクスポートすると、先頭の 0 がすべて削除されます。ありがとうございます

-----解決策---------
csv ファイルには次の内容が含まれていません写植情報。したがって、「各列を希望の幅に設定する」ことは不可能です。
幅を埋めるためにスペースを使用できる場合があります

先頭の 0 をすべて削除します。Excel は純粋な数値文字列を数値に解釈します
通常は、先頭に 1 つのアポストロフィを追加できます。
------解決策---------
csv 形式を使用せず、Excel の XML 形式を使用してください

header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition:attachment; filename=test.xls;") ;
?>




------解決策------------------
学生番号 td にスタイルを追加します: 0
が欠落している問題を解決できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
100これは例です< ;/td>
50わかりましたか?
******