Java怎么把查出来的数据转成excel文件
1、首先需要一个JXL包
2、生成EXCEL需要手动写查询语句把ORACLE数据库中的数据查询出来,再通过操作写到EXCEL文件里面。
3、通过EXCEL把数据读取到ORACLE,同样需要去读取EXCEL工作薄里面的内容,再通过INSERT语句去插入数据库操作。
4、packagecommon.uti盟敢势袂l;importjxl.*;importjxl.format.UnderlineStyl髫潋啜缅e;importjxl.write.*;importjxl.write.Number;importjxl.write.Boolean;importjava.io.*;/***CreatedbyIntelliJIDEA.*User:xl*Date:2005-7-17*Time:9:33:22*TochangethistemplateuseFile|Settings|FileTemplates.*/publicclassExcelHandle{publicExcelHandle(){}/***读取Excel**@paramfilePath*/publicstaticvoidreadExcel(StringfilePath){try{InputStreamis=newFileInputStream(filePath);Workbookrwb=Workbook.getWorkbook(is);//Sheetst=rwb.getSheet("0")这里有两种方法获取sheet表,1为名字,而为下标,从0开始Sheetst=rwb.getSheet("original");Cellc00=st.getCell(0,0);//通用的获取cell值的方式,返回字符串Stringstrc00=c00.getContents();//获得cell具体类型值的方式if(c00.getType()==CellType.LABEL){LabelCelllabelc00=(LabelCell)c00;strc00=labelc00.getString();}//输出System.out.println(strc00);//关闭rwb.close();}catch(Exceptione){e.printStackTrace();}}/***输出Excel**@paramos*/publicstaticvoidwriteExcel(OutputStreamos){try{/***只能通过API提供的工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,*因为类WritableWorkbook的构造函数为protected类型*method(1)直接从目标文件中读取WritableWorkbookwwb=Workbook.createWorkbook(newFile(targetfile));*method(2)如下实例所示将WritableWorkbook直接写入到输出流*/WritableWorkbookwwb=Workbook.createWorkbook(os);//创建Excel工作表指定名称和位置WritableSheetws=wwb.createSheet("TestSheet1",0);//**************往工作表中添加数据*****************//1.添加Label对象Labellabel=newLabel(0,0,"thisisalabeltest");ws.addCell(label);//添加带有字型Formatting对象WritableFontwf=newWritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);WritableCellFormatwcf=newWritableCellFormat(wf);Labellabelcf=newLabel(1,0,"thisisalabeltest",wcf);ws.addCell(labelcf);//添加带有字体颜色的Formatting对象WritableFontwfc=newWritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);WritableCellFormatwcfFC=newWritableCellFormat(wfc);LabellabelCF=newLabel(1,0,"ThisisaLabelCell",wcfFC);ws.addCell(labelCF);//2.添加Number对象NumberlabelN=newNumber(0,1,3.1415926);ws.addCell(labelN);//添加带有formatting的Number对象
5、NumberFormatnf=newNumberFormat(争犸禀淫"#.##");WritableCellFormatwcfN=newWritableCell僻棍募暖Format(nf);NumberlabelNF=newjxl.write.Number(1,1,3.1415926,wcfN);ws.addCell(labelNF);//3.添加Boolean对象BooleanlabelB=newjxl.write.Boolean(0,2,false);ws.addCell(labelB);//4.添加DateTime对象jxl.write.DateTimelabelDT=newjxl.write.DateTime(0,3,newjava.util.Date());ws.addCell(labelDT);//添加带有formatting的DateFormat对象DateFormatdf=newDateFormat("ddMMyyyyhh:mm:ss");WritableCellFormatwcfDF=newWritableCellFormat(df);DateTimelabelDTF=newDateTime(1,3,newjava.util.Date(),wcfDF);ws.addCell(labelDTF);//添加图片对象,jxl只支持png格式图片Fileimage=newFile("f:\\2.png");WritableImagewimage=newWritableImage(0,1,2,2,image);ws.addImage(wimage);//写入工作表wwb.write();wwb.close();}catch(Exceptione){e.printStackTrace();}}/***拷贝后,进行修改,其中file1为被copy对象,file2为修改后创建的对象*尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去,*以使单元格的内容以不同的形式表现*@paramfile1*@paramfile2*/publicstaticvoidmodifyExcel(Filefile1,Filefile2){try{Workbookrwb=Workbook.getWorkbook(file1);WritableWorkbookwwb=Workbook.createWorkbook(file2,rwb);//copyWritableSheetws=wwb.getSheet(0);WritableCellwc=ws.getWritableCell(0,0);//判断单元格的类型,做出相应的转换if(wc.getType==CellType.LABEL){Labellabel=(Label)wc;label.setString("Thevaluehasbeenmodified");}wwb.write();wwb.close();rwb.close();}catch(Exceptione){e.printStackTrace();}}//测试publicstaticvoidmain(String[]args){try{//读ExcelExcelHandle.readExcel("f:/testRead.xls");//输出ExcelFilefileWrite=newFile("f:/testWrite.xls");fileWrite.createNewFile();OutputStreamos=newFileOutputStream(fileWrite);ExcelHandle.writeExcel(os);//修改ExcelExcelHandle.modifyExcel(newfile(""),newFile(""));}catch(Exceptione){e.printStackTrace();}}}