首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java操作excl导入导出oracle数据库啊解决思路

2012-09-14 
java操作excl导入导出oracle数据库啊如题,求助,最好是在myeclipse上能直接跑起来代码项目!谢谢![解决办法]

java操作excl导入导出oracle数据库啊
如题,求助,最好是在myeclipse上能直接跑起来代码项目!谢谢!

[解决办法]

Java code
package com.test;import java.io.File;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.List;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Colour;import jxl.format.UnderlineStyle;import jxl.write.Label;import jxl.write.Number;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;/** * 生成excel的工具类,不用模板 * @version 2.0 * */public class ExportExcel {        private static ExportExcel bean = new ExportExcel();    public static ExportExcel getBean() {        return bean;    }        private FileOutputStream output;    private WritableWorkbook book;        /**     * 导出excel生成文件     * @param base 根目录(文件存放的目录)     * @param fileName 文件名     * @param fullDatas 要导出的数据(这里必须存放String类型的数组)     * @param title 文件的标题(第一行)     * @param coteWidths 每一列的宽度     * @param titles 表头标题     * @param numCote 需要数字格式化的列的索引     * @return String 返回输出文件的物理路径     * */    @SuppressWarnings("unchecked")    public String reportExcel(String base, String fileName, List fullDatas,             String title, int[] coteWidths, String[] titles, int[] numCote) {        try {            createFolder(base);//如果文件夹不存在就创建            String filePath = base + fileName;//输出文件路径            WritableCellFormat cellFormat = new WritableCellFormat();            cellFormat.setAlignment(Alignment.CENTRE);//居中显示            WritableSheet sheet = getExcel(filePath, title, coteWidths, titles);//获得工作簿            if(null != sheet){                for(int i = 0; i < fullDatas.size(); i++){                    String[] fullData = (String[]) fullDatas.get(i);                    if(fullData.length == coteWidths.length){//确保数据个数一致                        for (int j = 0; j < fullData.length; j++) {                            boolean isNumeric = false;//判断该列是否需要数字化格式                            if(null != numCote && numCote.length > 0){                                for(int c = 0; c < numCote.length; c++){                                    if(j == numCote[c]){                                        isNumeric = true;                                        break;                                    }                                }                            }                            if(isNumeric){                                Double numeric = Double.parseDouble(fullData[j]);                                Number number = new Number(j, i + 2, numeric, cellFormat);                                sheet.addCell(number);//数字格式化                            }else {                                Label label = new Label(j, i + 2, fullData[j], cellFormat);                                sheet.addCell(label);//文本数据                            }                                            }                    }                                }            }                        book.write();            book.close();            output.close();                    return filePath;        } catch (Exception e) {            e.printStackTrace();        }        return "";    }    // 生产excel工作簿    private WritableSheet getExcel(String filePath, String title, int coteWidths[], String[] titles) {        try {            if(coteWidths.length != titles.length){                return null;            }            output = new FileOutputStream(filePath);//文件输出流            book = Workbook.createWorkbook(output); // 创建文件            WritableSheet sheet = book.createSheet("sheet", 0); // 创建工作薄            //标题样式            WritableFont headFont = new WritableFont(                    WritableFont.ARIAL, 15, WritableFont.BOLD, false,                    UnderlineStyle.NO_UNDERLINE, Colour.BLACK);            WritableCellFormat headCellFormat = new WritableCellFormat(headFont);            headCellFormat.setAlignment(Alignment.CENTRE);//居中显示            //表头样式            WritableFont titleFont = new WritableFont(                    WritableFont.ARIAL, 11, WritableFont.BOLD, false,                    UnderlineStyle.NO_UNDERLINE, Colour.BLACK);            WritableCellFormat titleCellFormat = new WritableCellFormat(titleFont);            titleCellFormat.setAlignment(Alignment.CENTRE);            // 设置标题            sheet.mergeCells(0, 0, titles.length - 1, 0);//合并单元格            Label label = new Label(0, 0, title ,headCellFormat);            sheet.addCell(label);//标题            // 设置表头            for (int i = 0; i < coteWidths.length; i++) {                sheet.setColumnView(i, coteWidths[i]); // 设置列的宽度                Label label1 = new Label(i, 1, titles[i], titleCellFormat);                sheet.addCell(label1);//表头标题            }                        return sheet;        } catch (Exception e) {            e.printStackTrace();        }        return null;    }        // 创建文件夹    public void createFolder(String folderPath) {        try {            File folder = new File(folderPath);            if (!folder.exists()) {                folder.mkdirs();            }        } catch (Exception e) {            e.printStackTrace();        }    }        @SuppressWarnings("unchecked")    public static void main(String[] args) {        String base = "D:\\opt\\log\\", fileName = "student.xls", title= "学生成绩表";        String[] titles = new String[]{ "学号", "姓名", "语文", "数学", "排名" };        int[] coteWidths = new int[]{ 20, 30, 20, 20, 20 };        int[] numCote = new int[]{ 0, 2, 3, 4 };        List list = new ArrayList();        for (int i = 1; i <= numCote.length; i++) {            list.add(new String[]{ "201000" + i, i + "号学生", String.valueOf(100 - i), String.valueOf(95 - i), String.valueOf(i) });        }        System.out.println(ExportExcel.getBean().reportExcel(base, fileName, list, title, coteWidths, titles, numCote));    }} 

热点排行