Tag: fputcsv

PHP导出到CSV文件在Excel 2007和2010中有不同的行为

我试图使用PHP的fputcsv函数将数组导出到CSV文件。 不过,在Excel 2007和2010中打开文件时,我会遇到两种完全不同的行为。 在Excel 2007中,我得到了我想要的,因为所有的字段都在它自己的独立列中,如下所示: aaa | bbb | ccc | DDDD 123 | 456 | 789 “aaa”| “bbb”| 但在Excel 2010中,所有的字段都是这样的: AAA,BBB,CCC,DDDD 123,456,789 “AAA”, “”, “BBB” “” 如何获得Excel 2007和2010的Excel 2007行为? 我用了下面的脚本: $filename = "test.csv"; //header("Content-Type: application/vnd.ms-excel;"); header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header("Pragma: no-cache"); header("Expires: 0"); $list = array ( array('aaa', 'bbb', […]

是否可以在CSV文件中定义列\单元格格式?

在我的项目中,我生成一个CSV文件供用户下载。 在其中一列中,可以从0开始的值。然而,当用户下载文件并打开它时,零就消失了。

正确的方法来使用PHP fputcsv函数来导出CSV文件

我想要做的是,导出一些数据集的Excel,而不使用额外的第三方,沉重的图书馆。 问题是,当我导出文件时,第一行看起来不错,但从第二行开始,它将所有的$row数据放入当前行的第一个字段。 所以我得到的第一行文件正确地放置在右列,从第二行开始而不是列我看到整个文本在第一个字段由分隔符(逗号分隔) 这里是我用于结果的代码片段。 $counter=0; $file = fopen("sample.csv", "w"); foreach ($registrants as $registrant) { $row = [ 'Fullname' => $registrant->fullname, 'Phone' => $registrant->phone, 'Email' => $registrant->email, ]; if ($counter == 0) fputcsv($file, array_keys($row)); fputcsv($file, $row); $counter++; } fclose($file); 也试过 fputcsv($file, array_values($row), ';', ' '); 没有成功。 我究竟做错了什么? 无论操作系统或Excel语言环境如何,在所有Excel版本上查看正确结果的正确方法是什么?

PHP fputcsv不能正确显示中文字符

我需要你的帮助来完成我的项目。 我从我的json文件中获取数据,其中一些是由中文字符组成的,但是当我尝试写入.csv时,它不能正确显示。 这是我的代码 function writeCsv() { $resource = fopen('c:/xampp/test.json','w'); $csvBodyData = [ 'item'=> '逆始感録機政']; fputcsv($resource, $csvBodyData); } 我已经尝试了以下解决scheme,但它仍然无法正常工作。 写在UTF-8字符文件与fputcsv在PHP中 我得到这个字符“???”。

使用fputcsv()将数据正确添加到csv文件

我想将curl数据正确添加到csv文件中,当我尝试将数据添加到文件数据时,将全部添加到csv文件中。 我想只在cell添加它 以下是我的代码 – <?php define('CSV_PATH','csvfiles/'); $csv_file = CSV_PATH . "file_input_url.csv"; // Name of your input file $csvfile = fopen($csv_file, 'r'); $csv_fileoutput = CSV_PATH . "file_output_content.csv"; // Name of output file $csvfileoutput = fopen($csv_fileoutput, 'a'); header('Content-type: application/csv'); header('Content-Disposition: attachment; filename=' . $csvfileoutput); header("Content-Transfer-Encoding: UTF-8"); $headers = ['URL','Code_content']; fputcsv($csvfileoutput, $headers); function cleanData(&$str) { // escape tab […]

使用fputcsv将BOM添加到CSV文件

我有一个简单的CSV文件正在生成,其中包括外国字符。 我注意到,如果我不包括一个字节顺序标记,这些外来字符在Excel中没有正确显示(但是当BOM存在时它们显示正常)。 在第一次创build时,如何将BOM添加到文件的开头? 我试过以下,它不工作: – / function processForm($competition, $competitionEntry) { $BOM = "\xEF\xBB\xBF"; // UTF-8 BOM $filename = $competition->ID.".csv"; $file = "entries/".$filename; $fields = array_keys($competitionEntry); $submittedForm = $competitionEntry; if(file_exists($file)) { $fp = fopen($file, 'a'); if($fp && fputcsv($fp, $submittedForm) && fclose($fp)) { return true; } } else { // CREATE NEW FILE $fp = fopen($file, 'w'); […]

fputcsv将HTML代码插入到csv文件中

我有使用fputcsv编写csv文件的问题。 它把页面html也放到csv文件中。 我的代码有什么问题? //Excel header header("Content-Disposition: attachment; filename=\"Delivery_Reports.csv\";" ); header("Content-type: application/vnd.ms-excel"); $out = fopen("php://output", 'w'); $flag = false; // $result = mysql_query("SELECT * FROM senderids ") or die('Query failed!'); //$sel="SELECT number as MobileNumber ,snum as Sender , msg as Subject ,crdate as Date ,status FROM savemsg WHERE userID='".$_SESSION['id']."' ".$str." ORDER BY sn DESC "; $result […]

fputcsv和整数typcasting到string

所以我有一个线我想做一个fputcsv有一些整数(我需要被视为string,但他们是数字)。 这些整数具有前导零,当我做fputcsv时被切断,但我不希望发生这种情况,有没有办法解决这个问题呢? 我试着只是把(string)typcast和把我的variables放在引号中,但是到目前为止我发现的唯一方法就是在整个数字周围加上引号,当我打开它时,引用csv文件中的引号优秀,我不想发生。 有谁知道一个方法来得到这个工作? 我认为fputcsv只是自动分配这个variables的types出于某种原因,使之成为一个整数或东西… 编辑示例文本: 我fputcsv: 02305109 我在Excel中打开的csv文件中获得的内容: 2305109 但是当我使用vi打开所述csv文件时,前导零仍然存在。 真奇怪。