private Object exportDelimited() { int delimIndex = delimCombo.getSelectedIndex(); char delim = 0; switch (delimIndex) { case 0: delim = '|'; break; case 1: delim = ','; break; case 2: delim = ';'; break; case 3: delim = '#'; break; case 4: delim = customDelimField.getText().charAt(0); break; } ResultsProgressDialog progressDialog = null; PrintWriter writer = null; File exportFile = null; try { exportFile = new File(fileNameField.getText()); StringBuilder rowLines = new StringBuilder(5000); writer = new PrintWriter(new FileWriter(exportFile, false), true); int rowCount = model.getRowCount(); int columnCount = model.getColumnCount(); progressDialog = progressDialog(rowCount); if (columnHeadersCheck.isSelected()) { for (int i = 0; i < columnCount; i++) { rowLines.append(model.getColumnName(i)); if (i != columnCount - 1) { rowLines.append(delim); } } writer.println(rowLines.toString()); rowLines.setLength(0); } boolean applyQuotes = applyQuotesCheck.isSelected(); for (int i = 0; i < rowCount; i++) { for (int j = 0; j < columnCount; j++) { Object value = model.getValueAt(i, j); if (applyQuotes && isCDATA((RecordDataItem) value)) { rowLines.append("\"" + valueAsString(value) + "\""); } else { rowLines.append(valueAsString(value)); } if (j != columnCount - 1) { rowLines.append(delim); } } writer.println(rowLines.toString()); rowLines.setLength(0); progressDialog.increment(i + 1); } return "done"; } catch (IOException e) { return handleError(e); } finally { if (progressDialog != null && progressDialog.isVisible()) { progressDialog.dispose(); progressDialog = null; } if (writer != null) { writer.close(); } } }
private Object exportExcel() { OutputStream outputStream = null; ResultsProgressDialog progressDialog = null; try { outputStream = createOutputStream(); ExcelWorkbookBuilder builder = createExcelWorkbookBuilder(); builder.createSheet("Result Set Export"); int rowCount = model.getRowCount(); int columnCount = model.getColumnCount(); progressDialog = progressDialog(rowCount); List<String> values = new ArrayList<String>(columnCount); if (columnHeadersCheck.isSelected()) { for (int i = 0; i < columnCount; i++) { values.add(model.getColumnName(i)); } builder.addRowHeader(values); } for (int i = 0; i < rowCount; i++) { values.clear(); for (int j = 0; j < columnCount; j++) { Object value = model.getValueAt(i, j); values.add(valueAsString(value)); } builder.addRow(values); progressDialog.increment(i + 1); } builder.writeTo(outputStream); return "done"; } catch (IOException e) { return handleError(e); } finally { if (progressDialog != null && progressDialog.isVisible()) { progressDialog.dispose(); progressDialog = null; } if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { } } } }