Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > из Excel в XML |
Автор: #Maestro# 18.3.2009, 11:30 |
пытаюсь реализовать модуль для создания файла Ecxel из XML. скачал библиотеку pio (org.apache.poi). нашёл пример. в строке: org.apache.poi.hssf.usermodel.HSSFCell cell = row.createCell((short) 1); где org.apache.poi.hssf.usermodel.HSSFRow row=null; возникет предупреждение: warning: [deprecation] createCell(short) in org.apache.poi.hssf.usermodel.HSSFRow has been deprecated при компиляции соответственно возникает ошибка: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException очень прошу объяснить что это вышеописаное означает, и какими путями бороться? |
Автор: Kangaroo 18.3.2009, 20:49 |
А дальше этому row ничего не присваивается? |
Автор: _sten_ 18.3.2009, 22:15 |
Во первых не "pio" а "POI". Во вторых при компиляции NullPointerException валится не может |
Автор: #Maestro# 23.3.2009, 10:25 |
"Выкиньте такую IDE на помойку" если бы я знал что такое IDE... cитуация такая. есть два массива - массив столбцов таблицы и хначений таблицы (collNames и collValues соответственно). List<String> collNames = Arrays.asList("collName1", "collName2", "collName3"); List<String> collValues = Arrays.asList("1", "строка1", "Val1", "2", "строка2", "Val2", "3", "строка3", "Val3", "4", "строка4", "Val4"); как значения collValues разместить в таблице Excel, число столбцов равно числу значений collNames? ниже мой пример, критика приветствуется. и мне дико интересно как это сделает кто ещё? а САМОЕ ВАЖНОЕ - как считать из Excel данные и поместить их в те же массивы? import org.apache.poi.hssf.record.formula.functions.Call; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.*; import org.apache.poi.hssf.usermodel.HSSFCell.*; import java.io.*; import java.util.*; HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); HSSFRow row = sheet.createRow(1); HSSFCellStyle style = wb.createCellStyle(); int r = 1; List<String> collNames = Arrays.asList("collName1", "collName2", "collName3"); List<String> collValues = Arrays.asList("1", "строка1", "Val1", "2", "строка2", "Val2", "3", "строка3", "Val3", "4", "строка4", "Val4"); for (int x = 0; x < collValues.size();) { // Create a row and put some cells in it. Rows are 0 based. row = sheet.createRow((short) r); r++; for (int y = 0; y < collNames.size(); y++) { cell = row.createCell((short) y); cell.setCellValue(collValues.get(x)); cell.setCellStyle(style); x++; } } try { // Write the output to a file FileOutputStream fileOut = new FileOutputStream("11/workbook.xls"); wb.write(fileOut); fileOut.close(); } catch(Exception e) { System.out.println(e.toString()); } } |
Автор: anbal 23.3.2009, 17:20 | ||
IDE - среда разработки программного обеспечения А читать значения из файла примерно так
P.S: для POI 3.0.1 и 3.2 |
Автор: Saboteur 25.3.2009, 01:25 |
Кроме poi есть http://jexcelapi.sourceforge.net/ ![]() |
Автор: #Maestro# 25.3.2009, 09:26 |
благодарю вас, ребята! ещё вопросик - как создать XML-файлик. просто создать. с любыми тэгами. например: <TabName> <Val1> </Val1> <Val2> </Val2> </TabName> <TabName2> <Val1> </Val1> <Val2> </Val2> <Val3> </Val3> </TabName2> заранее благодарен |
Автор: #Maestro# 1.4.2009, 11:06 |
по-моему эта функция ползволяет пользователю найти и открыть XML-файл: chooser.setCurrentDirectory(new File(".")); chooser.setFileFilter(new javax.swing.filechooser.FileFilter() { public boolean accept(File f) { return f.isDirectory() || f.getName().toLowerCase().endsWith(".xls"); } public String getDescription() {return "Excel files";} }); int r = chooser.showOpenDialog(this); if (r != JFileChooser.APPROVE_OPTION) return; File f = chooser.getSelectedFile(); try{ if (builder == null) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); builder = factory.newDocumentBuilder(); } } catch (IOException e) { JOptionPane.showMessageDialog(this, e); } catch (ParserConfigurationException e) { JOptionPane.showMessageDialog(this, e); } catch (SAXException e) { JOptionPane.showMessageDialog(this, e); } подскажите - как выглядит такая же функция только для файла Excel ? |
Автор: #Maestro# 17.4.2009, 12:49 | ||
а вот ещё вопросец! очень надо программно открыть Excel и XML-файл и показать его пользователю. вот как выглядит моя функция :
дальше следует выбрать функцию обработки файла (Excel или XML фалов, в зависимости от выбора). вопрос: как узнать тип этого выбранного файла? то есть: какую функцию мне вызвать - обработки Excel-файла? или XML? |