1

MysqlからExcelにテーブルをエクスポートするためのこのコードをWebで見つけました。問題は、Excelにエクスポートされたデータに先行ゼロがないことです。したがって、番号090888の代わりに90888を取得します。コードが正常に機能することを除いて、この特定のコードを変更したいと思います。

誰かがこれを手伝ってくれるなら、私は本当にそれをいただければ幸いです。

コード:

header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Pragma: no-cache");
header("Expires: 0");

/*******Start of Formatting for Excel*******/

//define separator (defines columns in excel & tabs in word)

$sep = "\t"; //tabbed character

//start of printing column names as names of MySQL fields

for ($i = 0; $i < mysql_num_fields($result); $i++) {

echo mysql_field_name($result,$i) . "\t";

}

print("\n");

//end of printing column names

//start while loop to get data

    while($row = mysql_fetch_row($result))
    {
        $schema_insert = "";

        for($j=0; $j<mysql_num_fields($result);$j++)

        {

            if(!isset($row[$j]))

                $schema_insert .= "NULL".$sep;

            elseif ($row[$j] != "")

                $schema_insert .= "$row[$j]".$sep;

            else

                $schema_insert .= "".$sep;

        }

        $schema_insert = str_replace($sep."$", "", $schema_insert);

 $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);

        $schema_insert .= "\t";

        print(trim($schema_insert));

        print "\n";
    }
?>
4

3 に答える 3

0

PHPEXCEL を使用した後、次のように使用します。

$objPHPExcel->getActiveSheet()
    ->setCellValueExplicit("$row[$j]", "value" ,PHPExcel_Cell_DataType::TYPE_STRING);
于 2013-02-05T03:52:55.187 に答える
0

Excelシートに印刷するときは、数字の前に一重引用符を付けてください。これにより、数値データとしてではなく、テキストとして扱われるようになります。

たとえば、'090888単に の代わりにprint090888を使用すると、強制的に文字列として扱われます (ただし'、Excel では表示されません)。

別の方法はフォーマットを調整することですが、上記の場合は可能ではないと思います。

于 2012-10-22T09:13:29.120 に答える
0

XLS を作成するときに、整数に「0」を追加することはできません。これは、作成した Excel でのみ列の形式が整数であるためです。そのため、列の形式を変更する必要があります。このため、このパッケージPHPEXCELを使用して Excel を作成できます。

また、この投稿を参照することもできます:

https://stackoverflow.com/a/3269351/1638375

于 2012-10-22T09:50:28.467 に答える