Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Не сохраняет таблицу в Excel файл


Автор: lazycoder 10.12.2014, 04:19
Всем привет! Проблемма в следующем: когда я добавляю данные в таблицу и нажимаю сохранить в ексель файл ошибок не возникает, но когда открываю этот файл - он пуст. Помогите пожалуйста разобраться. Заранее спасибо!

Добавление строк

Код

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
        Object[] data = new Object[20];
        data[1] = jTextField1.getText();
        data[2] = jComboBox1.getSelectedItem();
        data[3] = jTextField3.getText();
        data[5] = jTextField4.getText();
        model.addRow(data);
        
    }     


Сохранение в файл
Код

 private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        JFileChooser fileChooser = new JFileChooser();
        FileNameExtensionFilter xlsFilter = new FileNameExtensionFilter("Microsoft Excel (*.xls)", "xls");
        fileChooser.addChoosableFileFilter(xlsFilter);
        int value = fileChooser.showSaveDialog(this);
        if(value == JFileChooser.APPROVE_OPTION){
            File file = fileChooser.getSelectedFile();
            try{
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
        //FileWriter excel = new FileWriter(file);
        BufferedWriter excel = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "windows-1251"));
        
        for(int i = 0; i < model.getColumnCount(); i++){
            excel.write(model.getColumnName(i) + "\t");
        }

        excel.write("\n");

        for(int i=0; i< model.getRowCount(); i++) {
            for(int j=0; j < model.getColumnCount(); j++) {
                excel.write(model.getValueAt(i,j).toString()+"\t");
            }
            excel.write("\n");
        }
        
        excel.close();
       
    }catch(IOException e){ System.out.println(e); }
        }

Автор: slavamk 25.12.2014, 23:37
Воспользуйтесь http://poi.apache.org/spreadsheet/quick-guide.html.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Ne-sokhranyayet-tablitsu-v-Excel-fayl-id54879fffae20157a658b4567#findElement_E7045_549c7582ae20159816e21223_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)