вставка данных в excel с помощью java

Я создаю отдельное приложение, используя Java Swing. и лист excel 2007 в качестве бэкэнда для хранения моих данных. В таблице Excel 15 столбцов. Я могу вставлять в него данные всего с 5 столбцами. Но он показывает «синтаксическую ошибку», когда я пытаюсь вставить 15 столбцов. Есть ли ограничение на количество столбцов, которые можно вставлять за раз? или есть другой синтаксис для длинных записей? Я новичок в java. так что будь добр, помоги мне. Заранее спасибо :) я разместил часть кодировки

 try
                       {

                         String value1=t1.getText();

                         String value2=(String)c6.getSelectedItem();

                         String value3=t3.getText();

                         String value4=t4.getText();

                         String value5=t5.getText();

                         String value6 = (String) c4.getSelectedItem(); 

                         String value7=t7.getText();

                         String value8=t8.getText();

                         String value9 = (String) c1.getSelectedItem(); 

                         String value10 = (String) c2.getSelectedItem(); 

                         String value11 = (String) c5.getSelectedItem(); 

                         String value12 = (String) c3.getSelectedItem(); 

                         String value13=t13.getText();

                         String value14=t14.getText();

                         String value15=t15.getText();

           //connection to the database          

                  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
               Connection con=DriverManager.getConnection("jdbc:odbc:testingApp");

          //Execute some sql and load the records into the resultset
                  Statement st=con.createStatement();
                String q = "insert into [sheet1$] (CRN,CR_NUM,SOW_N,PSM,LBG,TYPE,VALUE,REMARKS,STATUS,APPROVAL,PLATFORM,MODEL,START_DATE,END_DATE,CUM_VALUE) values ('"+value1+"','"+value2+"','"+value3+"','"+value4+"','"+value5+"','"+value6+"','"+value7+"','"+value8+"','"+value9+"','"+value10+"','"+value11+"','"+value12+"','"+value13+"','"+value14+"','"+value15+"')";
                 int ds = st.executeUpdate(q);
                 System.out.println("Inserted Sucessfully...!!!");

                  /* t1.setText(null);
                    c6.addItem(null);
                    t3.setText(null);
                    t4.setText(null);
                    t5.setText(null);
                    c4.addItem(null);
                    t7.setText(null);
                    t8.setText(null);
                    c1.addItem(null);
                    c2.addItem(null);
                    c5.addItem(null);
                    c3.addItem(null); 
                    t13.setText(null);
                    t14.setText(null);
                    t15.setText(null); */
                    }catch(Exception e)
                       {
                           System.out.println(e.getMessage());
                        }
                    }

} 

person user1616277    schedule 23.08.2012    source источник
comment
Будут ли какие-либо из ваших данных содержать символ '?   -  person themel    schedule 23.08.2012
comment
Возможно, вы могли бы взглянуть на POI Apache.   -  person sp00m    schedule 23.08.2012


Ответы (1)


Если вы хотите иметь формат xls/xlsx, то как sp00m sai, Apache POI является лучшим решением,
если вы хотите иметь файл csv, просто создайте текстовый файл и напишите туда данные, разделяя столбцы запятыми и строки с "\n " символ

person user902383    schedule 23.08.2012
comment
нет, они не содержат символов... только строковые и числовые значения - person user1616277; 24.08.2012
comment
где я могу найти учебники для Apache POI? в чем разница? почему здесь не работает? эта же логика работала для двух столбцов. извините, я задаю слишком много вопросов одновременно. но я здесь в отчаянии. работал над этим последние 3 дня. еще нет решения. пожалуйста, помогите мне. - person user1616277; 24.08.2012
comment
я снял флажок только для чтения в соединении ODBC, а также добавил его в код, например READONLY=false, но он все еще не работает. Может ли кто-нибудь сказать мне, где я ошибаюсь? - person user1616277; 24.08.2012
comment
1) можно ли получить данные из БД? 2) для пои я рекомендую вам начать с poi.apache.org/spreadsheet/how -to.html 3) разница в том, что я имею в виду, в формате файла excel, xlsx - это формат для excel 2007+, xls - более старый формат excel, оба поддерживаются poi, но вам нужно использовать разные классы, csv просто обычный текстовый файл, но его можно открыть и отредактировать в excel как обычный файл excel - person user902383; 24.08.2012
comment
ок ок ок. Я снова прошел кодирование. проверил состояние SQL, которое вернулось как 1. Также я попытался напечатать одно из значений на экране cmd. это сработало. Но когда я открываю файл Excel, он говорит: «Только для чтения». заблокирован для редактирования», поэтому я попытался закрыть соединение после вставки. ( con.close() ) после этого это сработало :), поэтому, поскольку соединение было открыто, программа не могла его редактировать, поскольку оно было открыто. так что после закрытия он работал. Большое спасибо всем. В любом случае, я также собираюсь попробовать apache poi. вроде проще. Спасибо :) - person user1616277; 28.08.2012