|
|
|
| Есть файл, там такая информация:
A B C
Вася ул Ленина, д.1 123
|
где А,В,С - имена ячеек.
Нужно получить вот это:
<customer name="Вася" address="Вася" unn="123" />
|
Как это сделать? | |
|
|
|
|
|
|
|
для: coloboc66
(20.12.2010 в 13:49)
| | Нужно создать карту XML, затем сопоставить XML элементы, а уже затем можно сохранять в этом формате. В справке ведь все описано. | |
|
|
|
|
|
|
|
для: sim5
(20.12.2010 в 14:22)
| | Не могу в справке найти конкретных инструкций... | |
|
|
|
|
|
|
|
для: coloboc66
(20.12.2010 в 15:17)
| | Ну куда уж.... ) Поиск в справке. Можете так и написать "xml сопоставления", думаю точно найдет. | |
|
|
|
|
|
|
|
для: sim5
(20.12.2010 в 15:26)
| | Ни фига не нахожу. Нашёлв интернете, что есть спец.программы для таких преобразований. | |
|
|
|
|
 48.7 Кб |
|
|
для: coloboc66
(20.12.2010 в 15:51)
| | Вот специально открыл помощь и нашел без проблем -->
Вы справку чего открывали то? ) | |
|
|
|
|
|
|
|
для: sim5
(20.12.2010 в 17:00)
| | Да у меня офис 2002 года, там такого нет, как у вас в приложенном файле.
Блин, проблема назрела...:((
Ладно, сейчас может программу конвертера поищу в интернете...
Ай, блин, всё платное! | |
|
|
|
|
|
|
|
для: coloboc66
(21.12.2010 в 11:23)
| | Ой, что-то я такого даже уже и не припомню - 2003, 2007, 2010 знаю, а 2002.... | |
|
|
|
|
|
|
|
для: sim5
(21.12.2010 в 12:11)
| | В справке о программе написано - 2002. | |
|
|
|
|
|
|
|
для: coloboc66
(21.12.2010 в 13:53)
| | Майкрософт уже завершает работу над MS Office 2012 Apocalypse Release x64, а вы каким-то его устаревшим Блокнотом пользуетесь. ) | |
|
|
|
|
|
|
|
для: sim5
(21.12.2010 в 13:58)
| | Такая у меня страна, такой у меня комп. | |
|
|
|
|
|
|
|
для: coloboc66
(21.12.2010 в 14:39)
| | Може кто-нибудь поможет один файл сконвертировать? | |
|
|
|
|
|
|
|
для: coloboc66
(22.12.2010 в 13:09)
| | так а может в csv его сперва, а дальше скриптом во что угодно? | |
|
|
|
|
|
|
|
для: Trianon
(22.12.2010 в 13:51)
| | А как это делается? Тоже ж наверное в csv надо конвертировать как-то? А скриптом каким? РНР? | |
|
|
|
|
|
|
|
для: coloboc66
(22.12.2010 в 13:56)
| | Откройте файл MS excel выберите "Файл" -> "Сохранить как", в поле тип файла выберите "CSV". Excel вам создаст CSV-файл. CSV - это текстовый файл, парсить его гораздо легче чем XLS-файл. Вот кстати есть готовый хороший парсер: http://www.softtime.ru/info/csv.php
Сам им пользовался несколько раз - остался доволен.
Ну а потом, взяв за основу распарсенный файл, генерируйте нужный вам xml. | |
|
|
|
|
|
|
|
для: Ирбис
(22.12.2010 в 15:40)
| | А что его парсить, если есть готовая функция. А чем сложно xml данные получить и чем это хуже? | |
|
|
|
|
|
|
|
для: sim5
(22.12.2010 в 15:50)
| | Ничем не хуже, в данном случаи получить сразу xml с помощью excel без всяких парсеров наверняка окажется самым удобным решением.
Но coloboc66 стал интересоваться вариантом с использованием CSV, вот я и ответил. | |
|
|
|
|
|
|
|
для: Ирбис
(22.12.2010 в 16:10)
| | Есть готовые функции для такого получения, что вы уперлись в парсер. | |
|
|
|
|
|
|
|
для: sim5
(22.12.2010 в 16:12)
| | Что понимается под готовыми функциями? Прелагаемый вами вариант в Экселе или скрипт РНР? | |
|
|
|
|
|
|
|
для: coloboc66
(23.12.2010 в 09:53)
| | Для разбора csv-файла применяют функцию fgetcsv. В мануале есть пример. | |
|
|
|
|
|
|
|
для: Ирбис
(22.12.2010 в 15:40)
| | Но тут нужно будет писать скрипт генерация ХМЛ-документа, т.к. парсер по вашей ссылке только переводит файл в двумерный массив, да? | |
|
|
|
|
|
|
|
для: coloboc66
(22.12.2010 в 16:51)
| | Да, парсер просто перевёдет данные из CSV-файла в двумерный массив.
Потребуется дальнейшая работа с массивом. | |
|
|
|
|
|
|
|
для: coloboc66
(22.12.2010 в 13:09)
| |
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Root">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="10" name="customer">
<xsd:complexType>
<xsd:all>
<xsd:element type="xsd:string" name="Name" />
<xsd:element type="xsd:string" name="Addr" />
<xsd:element type="xsd:decimal" name="Unn" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
| Вот типа такого должна быть xml карта для вашей таблицы (файл схемы - .xds). Добавляем эту карту как описано в помощи. Затем на панели xml задач сопоставляем ее элементы с элементами таблицы, далее экспорт и:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root>
<customer>
<Name>a</Name>
<Addr>aaa</Addr>
<Unn>11</Unn>
</customer>
<customer>
<Name>b</Name>
<Addr>bbb</Addr>
<Unn>22</Unn>
</customer>
<customer>
<Name>c</Name>
<Addr>ccc</Addr>
<Unn>33</Unn>
</customer>
<customer>
<Name>d</Name>
<Addr>ddd</Addr>
<Unn>44</Unn>
</customer>
<customer>
<Name>e</Name>
<Addr>eee</Addr>
<Unn>55</Unn>
</customer>
</Root>
|
maxOccurs="10" в карте указывает, что xml элементу можно сопоставить максимум 10 строк. Ну в общем и все, для простого экспорта вполне хватит. ) | |
|
|
|
|
|
|
|
для: sim5
(22.12.2010 в 15:00)
| | А тут нужно искать и ставить новй Эксель.:( Или даже новый Офис? | |
|
|
|
|
|
|
|
для: coloboc66
(22.12.2010 в 16:49)
| | А что прежние версии с xml форматом разве не могли работать? | |
|
|
|
|
|
|
|
для: sim5
(22.12.2010 в 16:59)
| | Там справка не показывает такого, как у вас. Предлагает поискать сведения в интернете. | |
|
|
|
|
|
|
|
для: coloboc66
(22.12.2010 в 17:52)
| | В 2003 точно есть, а найти 2003 не так и сложно. | |
|
|
|
|
|
|
|
для: sim5
(22.12.2010 в 17:58)
| | 2003 я поставил. Но вот тут возник вопрос: если у меня в экселевском файле строки с кавычками вида
то перед конверсией в xml эти кавычки нужно убирать? | |
|
|
|
|
|
|
|
для: coloboc66
(23.12.2010 в 11:59)
| | Зачем? Ничего не надо убирать, кавычки такой же равноправный симол как и иной другой | |
|
|
|
|
|
|
|
для: sim5
(23.12.2010 в 12:01)
| | То есть такой синтаксис в xml возможен:
?
Опасаюсь, что у меня возникнут проблемы при выводе этого скриптом на экран... | |
|
|
|
|
|
|
|
для: coloboc66
(23.12.2010 в 12:06)
| | А почему нет? Типы данных только указать правильно в файле схеме, например, вот тут, я скопировал, а не исправил:
<xsd:element type="xsd:decimal" name="Unn" />
а должен быть тип integer (для ваших значений)
При выводе на экран какие могут быть проблемы? Есть htmlspecialchars, если считаете, что у вас среди текста есть "вредоносное". При помещении в базу, тоже какие проблемы? Вы что впервые выводите на экран текст средствами РНР? Или о каком выводе вы ведете речь? | |
|
|
|
|
|
|
|
для: sim5
(22.12.2010 в 15:00)
| | Как понять: "Элементу можно сопоставить максимум 10 строк"? Что здесь понимается под элементом и под строками? | |
|
|
|
|
|
|
|
для: coloboc66
(28.12.2010 в 11:35)
| | Таблица имеет столбцы и имеет ряды (строки), вот этот параметр и регулирует число максимальных рядов, которым вы можете сопоставить элементы, если в этом есть необходимость, иначе не указывайте. Вроде бы это игнорируется, когда в настройках xml указать автоматическое добавление, проверите сами. | |
|
|
|
|
|
|
|
для: sim5
(28.12.2010 в 12:55)
| | Не понимаю... Всё вроде правильно делаю. Подключил карту, сделал сопоставление. Дальше делаю Данные - ХМЛ - Импорт... - Указываю путь сохранения - и никакой реакции - окно с указанием пути не пропадает и файл не появляется... И никаких сообщений об ошибках.
Я осёл - нужно ж делать экспорт, а не импорт...:)) | |
|
|
|