Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 27
1

Написание файла с Apache Poi

17.12.2013, 14:58. Просмотров 2195. Ответов 9
Метки нет (Все метки)


при использовании Apache poi для сохранения текста в файл .docx, мне выдаёт пустой документ без текста, т.е заданный текст не записывается в файл, посоветуйте что может быть не правильно написано в коде,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public void dothis() throws ParserConfigurationException, SAXException,
            IOException, TransformerFactoryConfigurationError,
            TransformerException {
        
        in = new BufferedReader(new FileReader("D:\\Probe.xml"));
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            // Get the DOM Builder
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document document = builder.parse("D:\\Probe.xml");
    
        XWPFDocument document1 = new XWPFDocument();
        XWPFParagraph paragraphOne = document1.createParagraph();
        XWPFRun paragraphOneRunOne = paragraphOne.createRun();
        paragraphOneRunOne.setText(in);
       
        FileOutputStream outStream = null;
        try {
            outStream = new FileOutputStream("D:\\dd3.docx");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
 
       
        List<Elementt> empList = new ArrayList<>();
    // Iteration durch den Knoten und die kinder Knoten extraktion
        NodeList nodeList = document.getDocumentElement().getChildNodes();
        
        for (int i = 0; i < nodeList.getLength(); i++) {
            Node node = nodeList.item(i);
        
            if (node instanceof Element) {
                Elementt emp = new Elementt();
                emp.id = node.getAttributes().getNamedItem("id").getNodeValue();
 
                NodeList childNodes = node.getChildNodes();
                for (int j = 0; j < childNodes.getLength(); j++) {
                    Node cNode = childNodes.item(j);
 
                    // Unterelementen von xml identifizieren
                    if (cNode instanceof Element) {
                        String content = cNode.getLastChild().getTextContent()
                                .trim();
                        switch (cNode.getNodeName()) {
                        case "text":
                            emp.text = content;
                            break;
 
                        }
                    }
                }
                empList.add(emp);
            }
 
        }
       for (Elementt emp : empList) {
            document1.println(emp);
            document1.write(outStream);
        }   
       outStream.close();
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2013, 14:58
Ответы с готовыми решениями:

Apache POI
Всем привет! Возникла необходимость на работе составлять отчеты по шаблону в MS Word. Начальство...

Apache POI
как её корректно установить на eclipse?

Как подключить Apache POI
я новичок в java, работаю в intellij, нужно написать считку с excel файла, но не могу подключить...

Apache POI, диапазон ячеек
Как покрасить диапазон ячеек?

9
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
17.12.2013, 15:52 2
empList точно правильно заполняется?
Незачем вызывать write у XWPFDocument в цикле - достаточно один раз, в конце работы.
0
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 27
17.12.2013, 16:03  [ТС] 3
Цитата Сообщение от turbanoff Посмотреть сообщение
empList точно правильно заполняется?
Незачем вызывать write у XWPFDocument в цикле - достаточно один раз, в конце работы.
а как ещё он может заполняться?
0
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
17.12.2013, 16:15 4
Цитата Сообщение от Velo Посмотреть сообщение
а как ещё он может заполняться?
Он может оказаться пустым.
0
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 27
17.12.2013, 16:19  [ТС] 5
Цитата Сообщение от turbanoff Посмотреть сообщение
Он может оказаться пустым.
что то не то значит с передачей текста? но что
0
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
17.12.2013, 16:20 6
Цитата Сообщение от Velo Посмотреть сообщение
что то не то значит с передачей текста? но что
Так empList, пустой или нет?
0
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 27
17.12.2013, 16:21  [ТС] 7
Цитата Сообщение от turbanoff Посмотреть сообщение
Так empList, пустой или нет?
нет не пустой
0
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
17.12.2013, 16:40 8
Вынесли document1.write(outStream); из цикла? Помогло?
0
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 27
17.12.2013, 16:41  [ТС] 9
Цитата Сообщение от turbanoff Посмотреть сообщение
Вынесли document1.write(outStream); из цикла? Помогло?
да убрали его, нет не помогло
0
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
17.12.2013, 17:44 10
Вообще странно, я не могу найти метод XWPFDocument.println в доках
Какая версия POI у вас?

PS. Вы уверены, что ваш код компилируется?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2013, 17:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Docx4j и Apache POI (XWPF)
Подскажите, пожалуйста, какая из библиотек чаще используется для работы с docx документами?

Apache POI и таблицы Excel
Добрый вечер. Вот получил дипломное задание от руководителя, и я не понимаю как жить) Нужно...

JAVA + EXCEL (APACHE.POI)
Привет! Ребята подскажите решение к задаче. К примеру, есть несколько сотен файлов excel, в...

Apache POI добавление altChunk элемента
Помогите, пожалуйста, разобраться со следующей проблемой. Для объединения нескольких docx...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.