在csv文件中获取列名

在创build一个CSV文件,并想知道如何获得第一行的列名。 现在我认为它试图回显列名称,但得到0'nulls。 我也想知道是否有可能把每个单元格中的每个值,我可以在Excel中手动执行,但这很麻烦。

在这里输入图像说明

这是代码:

$result=sqlsrv_query($conn,$sql) or die("Couldn't execute query:<br>" . sqlsrv_error(). "<br>" . sqlsrv_errno()); $file_ending = "csv"; $reals=array(); //header info for browser header("Content-Type: application/csv"); header("Content-Disposition: attachment; filename=test.csv"); 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 $i=0; foreach( sqlsrv_field_metadata( $result ) as $fieldMetadata ) { echo $fieldMetadata["Name"]+"\t"; if($fieldMetadata["Type"]=="real")//$fieldMetadata["Type"]=== SQL_REAL { $reals[] = $i; } $i++; } print("\n"); //end of printing column names //start while loop to get data while($row = sqlsrv_fetch_array($result)) { $schema_insert = ""; for($j = 0; $j < sqlsrv_num_fields($result); $j++) { if ($row[$j] != "") { if (in_array($j, $reals)) { $schema_insert .= str_replace(".",",", $row[$j]) . $sep; } else { $schema_insert .= $row[$j] . $sep; } } else $schema_insert .= "" . $sep; } $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); $schema_insert .= "\t"; print(trim($schema_insert)); print "\n"; } 

这会工作吗? 由于sqlsrv_fetch_array以字段的名称作为关键字返回一个关联数组,我们可以将其作为第一行input。

 $result=sqlsrv_query($conn,$sql) or die("Couldn't execute query:<br>" . sqlsrv_error(). "<br>" . sqlsrv_errno()); $file_ending = "csv"; $reals=array(); //header info for browser header("Content-Type: application/csv"); header("Content-Disposition: attachment; filename=test.csv"); 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 $firstRow = true; //start while loop to get data while($row = sqlsrv_fetch_array($result)) { if($firstRow) { $names = array_keys($row); $namesToPrint = ''; foreach($names as $idx => $name) { if($idx % 2 != 0) { $namesToPrint .= $name.','; } } $namesToPrint = substr($namesToPrint, 0, -1); print $namesToPrint."\n"; $firstRow = false; } $schema_insert = ""; for($j = 0; $j < sqlsrv_num_fields($result); $j++) { if ($row[$j] != "") { if (in_array($j, $reals)) { $schema_insert .= str_replace(".",",", $row[$j]) . $sep; } else { $schema_insert .= $row[$j] . $sep; } } else $schema_insert .= "" . $sep; } $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); $schema_insert .= "\t"; print(trim($schema_insert)); print "\n"; }