Search in sources :

Example 6 with WorkbookSettings

use of jxl.WorkbookSettings in project cubrid-manager by CUBRID.

the class ExportToXlsHandler method createWorkbook.

private WritableWorkbook createWorkbook(String filePath, int workbookNum) throws IOException {
    // FIXME move this logic to core module
    File file = new File(getFixFileName(filePath, workbookNum));
    WritableWorkbook workbook = Workbook.createWorkbook(file);
    if (StringUtil.isEmpty(exportConfig.getFileCharset())) {
        workbook = Workbook.createWorkbook(file);
    } else {
        WorkbookSettings workbookSettings = new WorkbookSettings();
        workbookSettings.setEncoding(exportConfig.getFileCharset());
        workbook = Workbook.createWorkbook(file, workbookSettings);
    }
    return workbook;
}
Also used : WritableWorkbook(jxl.write.WritableWorkbook) WorkbookSettings(jxl.WorkbookSettings) File(java.io.File)

Example 7 with WorkbookSettings

use of jxl.WorkbookSettings in project cubrid-manager by CUBRID.

the class ExportHostStatusDialog method saveAllData.

private boolean saveAllData() {
    String fileName = saveExcelPath.getText() + saveExcelName.getText() + ".xls";
    WorkbookSettings workbookSettings = new WorkbookSettings();
    workbookSettings.setEncoding(fileCharsetCombo.getText());
    boolean isOK = true;
    try {
        wwb = Workbook.createWorkbook(new File(fileName), workbookSettings);
        /*System info*/
        saveTableData(com.cubrid.cubridmanager.ui.host.Messages.titleServerInfo, editor.getDbServerInfoText().getText(), com.cubrid.cubridmanager.ui.host.Messages.titleServerInfo, 0);
        /*DB info*/
        saveDBInfoData(editor.getDatabaseTable(), com.cubrid.cubridmanager.ui.host.Messages.titleDBInfo, 1);
        /*DB volume info*/
        saveTableData(editor.getVolumeTableViewer().getTable(), com.cubrid.cubridmanager.ui.host.Messages.titleVolumeInfo, 2);
        /*Broker info*/
        saveTableData(editor.getBrokerTableViewer().getTable(), com.cubrid.cubridmanager.ui.host.Messages.titleBrokerInfo, 3);
        /*System status*/
        saveTableData(editor.getServerTableViewer().getTable(), com.cubrid.cubridmanager.ui.host.Messages.titleSystemInfo, 4);
        wwb.write();
    } catch (IOException e) {
        isOK = false;
        LOGGER.error("Export to error", e);
    } catch (RowsExceededException e) {
        isOK = false;
        LOGGER.error("Export to error", e);
    } catch (WriteException e) {
        isOK = false;
        LOGGER.error("Export to error", e);
    } finally {
        if (wwb != null) {
            try {
                wwb.close();
            } catch (Exception ex) {
                LOGGER.error("close excel stream error", ex);
            }
        }
    }
    return isOK;
}
Also used : WriteException(jxl.write.WriteException) WorkbookSettings(jxl.WorkbookSettings) IOException(java.io.IOException) File(java.io.File) WriteException(jxl.write.WriteException) IOException(java.io.IOException) RowsExceededException(jxl.write.biff.RowsExceededException) RowsExceededException(jxl.write.biff.RowsExceededException)

Example 8 with WorkbookSettings

use of jxl.WorkbookSettings in project dhis2-core by dhis2.

the class GridUtils method openWorkbook.

/**
     * Opens a workbook with UTF-8 encoding.
     */
private static WritableWorkbook openWorkbook(OutputStream outputStream) throws IOException {
    WorkbookSettings ws = new WorkbookSettings();
    ws.setEncoding("UTF-8");
    return Workbook.createWorkbook(outputStream, ws);
}
Also used : WorkbookSettings(jxl.WorkbookSettings)

Example 9 with WorkbookSettings

use of jxl.WorkbookSettings in project cubrid-manager by CUBRID.

the class ExportTableDataTask method exportXls.

/**
	 * Export data as XLS file format
	 *
	 * @param rs CUBRIDResultSetProxy
	 * @param monitor IProgressMonitor
	 */
private void exportXls(CUBRIDResultSetProxy rs, final IProgressMonitor monitor) {
    // FIXME move this logic to core module
    WritableWorkbook workbook = null;
    try {
        int sheetNum = 0;
        workbook = Workbook.createWorkbook(file);
        if (fileCharset == null || fileCharset.trim().length() == 0) {
            workbook = Workbook.createWorkbook(file);
        } else {
            WorkbookSettings workbookSettings = new WorkbookSettings();
            workbookSettings.setEncoding(fileCharset);
            workbook = Workbook.createWorkbook(file, workbookSettings);
        }
        WritableSheet sheet = workbook.createSheet("Sheet " + sheetNum, sheetNum);
        // 65536: limit xls row number.
        int rowLimit = ImportFileConstants.XLS_ROW_LIMIT;
        // it set 257. Because Tbl's first column is oid value that doesn't export
        // 256: limit xls column number.
        int columnLimit = ImportFileConstants.XLS_COLUMN_LIMIT + 1;
        int cellCharacterLimit = ImportFileConstants.XLSX_CELL_CHAR_LIMIT;
        CUBRIDResultSetMetaDataProxy rsmt = (CUBRIDResultSetMetaDataProxy) rs.getMetaData();
        int colCount = rsmt.getColumnCount() + 1;
        isExit = false;
        for (int j = 1; j < colCount; j++) {
            String columnName = rsmt.getColumnName(j);
            String columnType = rsmt.getColumnTypeName(j);
            int precision = rsmt.getPrecision(j);
            columnType = columnType == null ? "" : columnType;
            setIsHasBigValue(columnType, precision);
            //the data length > XLS column character limit
            if (precision > cellCharacterLimit) {
                final String confirmMSG = Messages.bind(Messages.exportCharacterCountExceedWarnInfo, columnName);
                Display.getDefault().syncExec(new Runnable() {

                    public void run() {
                        if (!CommonUITool.openConfirmBox(confirmMSG)) {
                            isExit = true;
                        }
                    }
                });
                if (isExit) {
                    return;
                }
            }
            // first line add column name
            if (isFirstRowAsColumnName) {
                WritableFont wf = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false);
                WritableCellFormat wcf = new WritableCellFormat(wf);
                if (columnName.length() > cellCharacterLimit) {
                    Label label = new Label(j - 1, 0, columnName.substring(0, cellCharacterLimit));
                    sheet.addCell(label);
                    label = null;
                } else {
                    Label label = new Label(j - 1, 0, columnName.toString(), wcf);
                    sheet.addCell(label);
                    label = null;
                }
                wcf = null;
                wf = null;
            }
        }
        if (colCount > columnLimit) {
            Display.getDefault().syncExec(new Runnable() {

                public void run() {
                    if (!CommonUITool.openConfirmBox(Messages.exportColumnCountOverWarnInfo)) {
                        isExit = true;
                    }
                }
            });
            if (isExit) {
                return;
            }
            colCount = columnLimit;
        }
        int xlsRecordNum = 0;
        if (isFirstRowAsColumnName) {
            xlsRecordNum = 1;
        }
        while (rs.next()) {
            if (!CommonUITool.isAvailableMemory(REMAINING_MEMORY_SIZE)) {
                throw new OutOfMemoryError();
            }
            for (int j = 1; j < colCount; j++) {
                String colType = rsmt.getColumnTypeName(j);
                colType = FieldHandlerUtils.amendDataTypeByResult(rs, j, colType);
                int precision = rsmt.getPrecision(j);
                setIsHasBigValue(colType, precision);
                Object cellValue = FieldHandlerUtils.getRsValueForExport(colType, rs, j, nullValue);
                if (cellValue instanceof Long) {
                    sheet.addCell(new Number(j - 1, xlsRecordNum, (Long) cellValue));
                } else if (cellValue instanceof Double) {
                    sheet.addCell(new Number(j - 1, xlsRecordNum, (Double) cellValue));
                } else if (cellValue instanceof Timestamp) {
                    String dataCellValue = FieldHandlerUtils.formatDateTime((Timestamp) cellValue);
                    sheet.addCell(new Label(j - 1, xlsRecordNum, dataCellValue));
                } else if (cellValue instanceof java.sql.Time) {
                    String dataCellValue = DateUtil.getDatetimeString(((java.sql.Time) cellValue).getTime(), FieldHandlerUtils.FORMAT_TIME);
                    sheet.addCell(new Label(j - 1, xlsRecordNum, dataCellValue));
                } else if (cellValue instanceof java.sql.Date) {
                    String dataCellValue = DateUtil.getDatetimeString(((java.sql.Date) cellValue).getTime(), FieldHandlerUtils.FORMAT_DATE);
                    sheet.addCell(new Label(j - 1, xlsRecordNum, dataCellValue));
                } else {
                    sheet.addCell(new Label(j - 1, xlsRecordNum, cellValue.toString().length() > cellCharacterLimit ? cellValue.toString().substring(0, cellCharacterLimit) : cellValue.toString()));
                }
            }
            xlsRecordNum++;
            if (((exportedCount + 1) % rowLimit) == 0) {
                sheetNum++;
                xlsRecordNum -= rowLimit;
                sheet = workbook.createSheet("Sheet " + sheetNum, sheetNum);
            }
            exportedCount++;
            monitor.worked(10);
            monitor.subTask(Messages.bind(Messages.msgExportDataRow, exportedCount));
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    } finally {
        try {
            if (workbook != null) {
                workbook.write();
            }
        } catch (Exception ignored) {
        }
        try {
            if (workbook != null) {
                workbook.close();
            }
        } catch (Exception ignored) {
        }
    }
}
Also used : WritableFont(jxl.write.WritableFont) Label(jxl.write.Label) WorkbookSettings(jxl.WorkbookSettings) WritableSheet(jxl.write.WritableSheet) WritableCellFormat(jxl.write.WritableCellFormat) Timestamp(java.sql.Timestamp) Date(java.util.Date) ParseException(java.text.ParseException) FileNotFoundException(java.io.FileNotFoundException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) SQLException(java.sql.SQLException) IOException(java.io.IOException) WritableWorkbook(jxl.write.WritableWorkbook) CUBRIDResultSetMetaDataProxy(com.cubrid.jdbc.proxy.driver.CUBRIDResultSetMetaDataProxy) Number(jxl.write.Number)

Example 10 with WorkbookSettings

use of jxl.WorkbookSettings in project cubrid-manager by CUBRID.

the class ExportConnectionUtil method writeToXls.

/**
	 * Write to xls
	 *
	 * @throws IOException
	 * @throws RowsExceededException
	 * @throws WriteException
	 */
private void writeToXls() throws IOException, RowsExceededException, WriteException {
    // FIXME split logic and ui
    WritableWorkbook workbook = null;
    WorkbookSettings workbookSettings = new WorkbookSettings();
    workbookSettings.setEncoding("UTF-8");
    workbook = Workbook.createWorkbook(file, workbookSettings);
    WritableSheet sheet = workbook.createSheet(Messages.sheetNameConnections, 0);
    WritableFont wf = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false);
    WritableCellFormat wcf = new WritableCellFormat(wf);
    jxl.write.Label label = null;
    label = new jxl.write.Label(0, 0, Messages.nameColumn, wcf);
    sheet.addCell(label);
    label = new jxl.write.Label(1, 0, Messages.iPColumn, wcf);
    sheet.addCell(label);
    label = new jxl.write.Label(2, 0, Messages.portColumn, wcf);
    sheet.addCell(label);
    label = new jxl.write.Label(3, 0, Messages.userColumn, wcf);
    sheet.addCell(label);
    label = new jxl.write.Label(4, 0, Messages.commentColumn, wcf);
    sheet.addCell(label);
    label = new jxl.write.Label(5, 0, Messages.javaUrlColumn, wcf);
    sheet.addCell(label);
    label = new jxl.write.Label(6, 0, Messages.phpUrlColumn, wcf);
    sheet.addCell(label);
    int index = 1;
    for (CubridDatabase database : input) {
        if (database == null) {
            continue;
        }
        DatabaseInfo dbInfo = database.getDatabaseInfo();
        if (dbInfo == null) {
            continue;
        }
        /* name */
        sheet.addCell(new jxl.write.Label(0, index, dbInfo.getDbName()));
        /* ip */
        sheet.addCell(new jxl.write.Label(1, index, dbInfo.getBrokerIP()));
        /* port */
        sheet.addCell(new jxl.write.Label(2, index, dbInfo.getBrokerPort()));
        /* user */
        sheet.addCell(new jxl.write.Label(3, index, getDbUser(dbInfo)));
        /* comment */
        String comment = "";
        DatabaseEditorConfig editorConfig = QueryOptions.getEditorConfig(database, managerMode);
        if (editorConfig != null && editorConfig.getDatabaseComment() != null) {
            comment = editorConfig.getDatabaseComment();
        }
        sheet.addCell(new jxl.write.Label(4, index, comment));
        /* java url */
        String javaUrl = NodeUtil.getJavaConnectionUrl(dbInfo);
        sheet.addCell(new jxl.write.Label(5, index, javaUrl));
        /* php url */
        String phpUrl = NodeUtil.getPHPConnectionUrl(dbInfo);
        sheet.addCell(new jxl.write.Label(6, index, phpUrl));
        index++;
    }
    workbook.write();
    workbook.close();
}
Also used : WritableWorkbook(jxl.write.WritableWorkbook) DatabaseInfo(com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo) WritableFont(jxl.write.WritableFont) WorkbookSettings(jxl.WorkbookSettings) WritableSheet(jxl.write.WritableSheet) CubridDatabase(com.cubrid.common.ui.spi.model.CubridDatabase) WritableCellFormat(jxl.write.WritableCellFormat) DatabaseEditorConfig(com.cubrid.common.ui.spi.model.DatabaseEditorConfig)

Aggregations

WorkbookSettings (jxl.WorkbookSettings)16 WritableWorkbook (jxl.write.WritableWorkbook)10 File (java.io.File)9 WritableSheet (jxl.write.WritableSheet)8 IOException (java.io.IOException)7 WritableCellFormat (jxl.write.WritableCellFormat)6 WriteException (jxl.write.WriteException)6 InvocationTargetException (java.lang.reflect.InvocationTargetException)4 SQLException (java.sql.SQLException)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 WritableFont (jxl.write.WritableFont)3 FileNotFoundException (java.io.FileNotFoundException)2 UnsupportedEncodingException (java.io.UnsupportedEncodingException)2 Cell (jxl.Cell)2 Workbook (jxl.Workbook)2 BiffException (jxl.read.biff.BiffException)2 Label (jxl.write.Label)2 Constraint (com.cubrid.common.core.common.model.Constraint)1 SchemaInfo (com.cubrid.common.core.common.model.SchemaInfo)1