Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML -> Excel 
:(
    Опции темы
lezhik
Дата 26.4.2004, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.10.2003

Репутация: 1
Всего: 1



Как средствами java можно перевести XML документ в XLS. Вроде как средствами POI как-то моно сделать хотя как именно я не понял withstupid.gif
PM MAIL   Вверх
Грасоff
Дата 26.4.2004, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.4.2004

Репутация: 1
Всего: 1



Код
HSSFWorkbook wb = createWorkbook();
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.createRow((short) index);

HSSFCell cell = row.createCell((short) 1);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("Текст в ячейке");

wb.write(new FileOutputStream("c:\\sample.xls"));

PM MAIL   Вверх
lezhik
Дата 26.4.2004, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.10.2003

Репутация: 1
Всего: 1



Дык проблема в том что данные надо из XML документа выдирать, не руками же его парсить sad.gif
PM MAIL   Вверх
Грасоff
Дата 26.4.2004, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.4.2004

Репутация: 1
Всего: 1



Дык проблема в том что данные надо из XML документа выдирать, не руками же его парсить

ни фига ты прикололся. любой xml-документ может и не попасть в xls, если он не следует структуре определенной.

вот документ:

Код
<project>
<properties>
 <property name="asd" value="msd"/>
 <property name="asd" value="msd"/>
 <property name="asd" value="msd"/>
</properties>
<content>
 <folder name="f01"/>
 <folder name="f02">
  <descriptor itemType="boolean"/>
...
 </folder>
</content>


и как ты его в xls определишь?

а если структура xml заранее известна - парсить парсерами всевозможными и класть в xls.

что значит - "не руками парсить"?


PM MAIL   Вверх
lezhik
Дата 26.4.2004, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.10.2003

Репутация: 1
Всего: 1



дык согласен из какой-то фиксированной структуры, загнать в неё по средствам xsl не проблема, но как загнать уже определённой структуры xml в xls я лично не знаю butbut.gif
PM MAIL   Вверх
Грасоff
Дата 27.4.2004, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.4.2004

Репутация: 1
Всего: 1



че тут знать.

файл:

Код
<library>
<book>
 <title>asd</title>
 <author>fgh</author>
</book>
<book>
 <title>asd</title>
 <author>fgh</author>
</book>
<book>
 <title>asd</title>
 <author>fgh</author>
</book>
<book>
 <title>asd</title>
 <author>fgh</author>
</book>
</library>


и че - парсишь, например, nanoxml и посредством poi - в эксель. получится:

Код
N | название | автор
--------------------
1 | asd      | fgh
2 | asd      | fgh
3 | asd      | fgh
--------------------


чем не нравиться?
PM MAIL   Вверх
lezhik
Дата 27.4.2004, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.10.2003

Репутация: 1
Всего: 1



Знал бы как сделал бы давно, код в студию withstupid.gif
PM MAIL   Вверх
Грасоff
Дата 28.4.2004, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.4.2004

Репутация: 1
Всего: 1



код какой именно нужен?

xml разобрать? по контексту вроде да. тогда так (nanoxml и exceptions не обрабатываются):

Код
IXMLParser parser;
parser = XMLParserFactory.createDefaultXMLParser();

IXMLReader reader;
String xmlData = "строка содержит xml как он есть, но есть и методы чтения из файла";
reader = StdXMLReader.stringReader(xmlData);

parser.setReader(reader);

XMLElement root;
root = (XMLElement)parser.parse(); // root - не что иное как, например <library> из вышеприведенного xml'a

// теперь все книги из того xml'a - <book>
int childCount = root.getChildrenCount();
for (int i = 0; i < childCount; i++) {
 XMLElement book = (XMLElement)root.getChildAtIndex(i);
 String title = getValueFromChildren(book, "title");
 String author = getValueFromChildren(book, "author");
}


и все. функция getValueFromChildren(XMLElement element, String childTagName) - как домашнее задание тебе smile.gif ее задача - получить дочерний элемент тэга element по имени childTagName и вернуть строковое значение между тэгами, например, <title>...</title>


PM MAIL   Вверх
lezhik
Дата 28.4.2004, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.10.2003

Репутация: 1
Всего: 1



Пасиба!!!! Код был нужен именно этот!!! Уже интересно!!! thumbs-up.gif Хотя я представлял себе несколько иначе... Тут на java.sun.com инетересный вариант предложили с использованием JAXB, типа генеришь классы на основе DTD схемы документа, и потом просто подгружаешь дерево классов и за милую душу усё обрабатываешь... Кто как считает что правильней? Беспокоит то, что nanoxml не из стандартных, у нас sax используется, и не понятно какой из вариантов будет работать быстрей (тут тоже вроде как JAXB должон выигрывать, ибо он структуру документа примерно знает) cool.gif
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0971 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.