Преобразование данных CSV в записи фиксированной ширины с использованием PHP и php-excel-класс чтения

#php #excel #csv #fixed-length-record

#php #excel #csv #запись фиксированной длины

Вопрос:

Мой конечный результат — создать запись фиксированной длины, созданную либо из csv, либо из файла Excel с использованием PHP. Я работаю с excel_reader2.php и, кажется, импортирует это красиво и отображает в браузере. Я хотел бы, в свою очередь, экспортировать или записать содержимое в файл, чтобы каждый столбец экспортировался в виде полей фиксированной длины с 35 символами. в настоящее время $data отформатирован как html и не знает, как записать то, что я описываю. Заранее благодарю вас за то, что кто-то указал мне правильное направление.

Комментарии:

1. Итак, вы говорите, что у вас есть таблица HTML в качестве входных данных, и вы хотите отобразить ее в виде обычного текста с шириной каждой ячейки ровно 35 символов?

2. code.google.com/p/php-excel-reader это то, что я использую для отображения выходных данных Excel в браузере. что мне нужно, так это перенаправить тот же вывод в файл фиксированной длины с каждым полем длиной 35 символов. дамп <?php echo $data->(true,true);?> содержит весь дамп html

3. Что ж, если класс позволяет вам получать доступ к строкам и столбцам листа, вы можете перебирать их и выводить форматированные данные, как описано @Keenora.

Ответ №1:

Вы бы взяли каждую строку файла CSV. Затем, каждый столбец строки. Для каждой ячейки вы могли бы использовать:

 $newcell = sprintf("[5s]n", $cell);
 

Таким образом, у вас будет строка шириной 35 символов с данными $cell. А затем просто добавьте его через два цикла в файл.

Комментарии:

1. Кстати. Я не знаю этого excel_reader2.php но если вы можете получить массив, вы также можете использовать функцию fputcsv для записи нового csv. de2.php.net/manual/en/function.fputcsv.php

2. code.google.com/p/php-excel-reader это то, что я использую для отображения выходных данных Excel в браузере. что мне нужно, так это перенаправить тот же вывод в файл фиксированной длины с каждым полем длиной 35 символов. дамп <?php echo $data->(true,true);?> содержит весь дамп html

3. Как я уже сказал, вам нужно только получить каждую строку и каждый столбец, выполнить итерацию по ним и выполнить sprintf, как указано выше, для каждой ячейки. Затем сохраните новые данные в файл. Затем вы получите файл столбца фиксированной длины.