Конвертация xml в xls

Samail
На сайте с 10.05.2007
Offline
369
41181

Подскажите скрипт или программу для конвертации xml в xls. Чтоб на выходе получился экселевский файл. Структура полученного файла не важна, главное чтоб каждое значение в отдельной ячейке оказалось и каждый товар в отдельной строке. …если есть возможность сразу делать автозамену то хорошо, если нет то бог с ним, макросом заменять буду.

[Удален]
#1

Samail, Excel 2003 открывает без проблем или Swift

Samail
На сайте с 10.05.2007
Offline
369
#2

Phessiv, у меня 2007, тот файл что нужно конвертировать он не открывает, пишет: ошибка разбора xml.

[Удален]
#3

Samail, у меня 2003 и открывает без проблем любые xml с помощью "Открыть файл, применив следующую таблицу стилей"

T.R.O.N
На сайте с 18.05.2004
Offline
314
#4

Samail, возьмите любой из редакторов

http://ru.wikipedia.org/wiki/Список_редакторов_XML

скорее всего файл имеет дефекты. потом откройте его экселем.

T.R.O.N добавил 15.01.2010 в 19:12

Phessiv:
открывает без проблем

если в структуре нет проблем и правильно определилась кодировка

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
Samail
На сайте с 10.05.2007
Offline
369
#5

T.R.O.N, спасибо попробую

Samail добавил 15.01.2010 в 22:07

Исправил ошибки, теперь открывает, но всё в столбик. Как сделать что эксель понимал, что если написано:

<fields>

<field name="id" comment="номер объекта"/>
</fields>
<rows>
<row>
<field name="id">1103</field>
</row>
</rows>

То это означает, что ="id" и "номер объекта" являются не значением ячейки а заголовком столбца, а значением ячейки этого столбца является "1103"?

satrau
На сайте с 08.11.2009
Offline
12
#6

вы бы пример своего файла выложили. хотел сделать доброе дело, написать вам конвертер на основе своего, да нечего конвертировать.

satrau добавил 16.01.2010 в 04:19

Вот вам подходящий конвертер.

Сохраняем этот код в index.php прописываем в нем имя файла для парсинга и запускаем.

В результате получим csv. по нему потом правой кнопкой- открыть с помощью ... Excel


<?php

$file_name = './nedv.xml'; // ИМЯ ФАЙЛА ДЛЯ РАЗБОРА
//------------------------------------------------------------
$tmp_db = file_get_contents($file_name);
$tmp_db = str_replace ( '&', ' ', $tmp_db);
$tmp_db = simplexml_load_string($tmp_db);

for($i = 0 ; $i != count($tmp_db->price) ; $i++ )
{
$tmp_res .= process_price($tmp_db->price[$i])."\r\n" ;
};

$tmp_res = iconv('utf-8','windows-1251', $tmp_res);
file_put_contents ('./result.csv' , $tmp_res);
// конец :)

//------------------------------------------------------------
function process_price($price)
{

for($i = 0 ; $i != count($price->fields->field) ; $i++ )
{
$tmp_price .= $price->fields->field[$i][comment]." ; " ;
};
$tmp_price .= "\r\n";
for($i = 0 ; $i != count($price->rows->row) ; $i++ )
{
$tmp_price .= process_row($price->rows->row[$i])."\r\n" ;
};

return $tmp_price;
};

function process_row($row)
{
for($i = 0 ; $i != count($row->field) ; $i++ )
{
$tmp_item .= $row->field[$i][0]." ; " ;
};
return $tmp_item;
};

?>
Россошь (http://www.flash9.ru)
Samail
На сайте с 10.05.2007
Offline
369
#7

satrau, спасибо, выручил :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий