使用PHP和php-excel-reader类将CSV数据转换为固定宽度的记录

我的最终结果是使用PHP从excel文件的csv创建一个固定长度的记录。 我正在使用excel_reader2.php,似乎很好地导入它并在浏览器中显示它。 我想依次将内容导出或写入文件,以便每列导出为35个字符的固定长度字段。 目前$ data的格式为html,不知道如何写下我所描述的内容。 提前感谢有人指出我正确的方向。</ p>
</ div>

展开原文

原文

My end result is to have a fixed length record created from either a csv of excel file using PHP. I have am working with excel_reader2.php and seems to import this nicely and displays it in the browser. I would like in turn to export or write the contents to a file so that each column would export as 35 characters fixed length fields . currently the $data is formatted as html and dont know how to write down what i am describing. Thank you in advance for someone to point me in the correct direction.

dtyw10299
dtyw10299 好吧,如果类允许您访问工作表的行和列,则可以循环它们并输出格式化数据,如@Keenora所述。
接近 9 年之前 回复
duanlidi1051
duanlidi1051 我正在使用code.google.com/p/php-excel-reader将excel的输出显示给浏览器。我需要的是将相同的输出重定向到一个固定长度的文件,每个字段的长度为35个字符。<?phpecho$data->dump(true,true);?>包含整个html转储
接近 9 年之前 回复
doujiaoang69440
doujiaoang69440 所以你说你有一个HTML表作为输入,你想将它显示为纯文本,每个单元格正好35个字符宽?
接近 9 年之前 回复

1个回答



您将获取CSV文件的每一行。 然后,该行的每一列。 对于您可以使用的每个单元格:</ p>

  $ newcell = sprintf(“[%35s] 
”,$ cell);
</ code> </ pre> \ n

因此,您将拥有一个35个字符宽度的字符串,其中包含$ cell的数据。 然后,只需通过两个循环将其添加到文件中。</ p>
</ div>

展开原文

原文

You would take every row of the CSV file. Then, every column of the row. For every cell you could use:

$newcell = sprintf("[%35s]
", $cell);

So you would have a 35 chars width string with the data of $cell. And then, just add it via two loops into a file.

dongxi1680
dongxi1680 正如我所说,你只需要获取每一行和每一列,迭代它并在每个单元格上执行如上所述的sprintf。 然后将新数据保存到文件中。 然后你会得到一个固定长度的列文件。
接近 9 年之前 回复
drhgzx4727
drhgzx4727 我正在使用code.google.com/p/php-excel-reader将excel的输出显示给浏览器。 我需要的是将相同的输出重定向到一个固定长度的文件,每个字段的长度为35个字符。 <?php echo $ data-> dump(true,true);?>包含整个html转储
接近 9 年之前 回复
dpmp9359
dpmp9359 顺便说一句。 我不知道这个excel_reader2.php但是如果你能得到一个数组,你也可以使用fputcsv函数来编写新的csv。 de2.php.net/manual/en/function.fputcsv.php
接近 9 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问