导出到Excel将丢弃前导零

我在网上find了这个代码,用于从Mysql到Excel的导出表。 问题是导出到Excel的数据缺less前导零。 所以,而不是号码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"; } ?> 

创buildXLS时,不能将整数加“0”。 因为该列的格式仅在您创build的Excel中为整数。 所以我们需要改变列的格式。 为此,您可以使用此包PHPEXCEL来创buildExcel。

也可以参考这篇文章:

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

使用PHPEXCEL之后,使用如下所示:

 $objPHPExcel->getActiveSheet() ->setCellValueExplicit("$row[$j]", "value" ,PHPExcel_Cell_DataType::TYPE_STRING); 

当您将其打印到Excel表格中时,请在数字前加一个单引号。 这将迫使他们被视为文字,而不是数字数据。

例如,打印'090888而不是090888 ,这将强制它将其视为一个string(但不会在Excel中显示'

另一种方法是调整格式,但我不认为这是可能的上述情况。