.xls文件导入和导出
2013-06-09 15:49
169 查看
这会儿闲着没事,整理了下.xls 文件导出导入的这两个方法,先声明此方法,我也是根据网上朋友的进行了点修改,又重新封装的,贴出来给大家看看吧,多多指教!
其中导入方法我返回的是一个List<String>泛型,觉得该方法封装的不够完善,因为其中swich case 块,是根据我项目的需求写的,所以说才选择了这个返回参数,大家可以试着改改,看有没有更好的办法!
其中导入方法我返回的是一个List<String>泛型,觉得该方法封装的不够完善,因为其中swich case 块,是根据我项目的需求写的,所以说才选择了这个返回参数,大家可以试着改改,看有没有更好的办法!
import org.apache.commons.lang.StringUtils; import jxl.Sheet; import jxl.Workbook; import jxl.write.Label; import jxl.write.NumberFormats; import jxl.write.WritableCellFormat; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class ExportXlsUtil { private int sheetSize; //该方法中 sheetSize参数为:最大索引(表中的数据条数) public static void writeIntoXLS(List<String> headList, List<List<String>> bodyList, String xlsFull,int sheetSize) { WritableWorkbook wwb= null; try{ int sheetNum = 1;//当前sheet索引 int recNum = 0; // 当前记录索引 File writeFile = new File(xlsFull);//生成xls文件 if(writeFile.exists()) writeFile.delete();//检查文件是否已存在,存在则删除 writeFile.createNewFile();//建立新的文件 wwb = Workbook.createWorkbook(writeFile);//整理数据流,WritableWorkbook //开始分SHEET,写数据 while(true){ int rowNum = 0; String sheetName = "sheet" + sheetNum; //建立SHEET WritableSheet ws = wwb.createSheet(sheetName, sheetNum); sheetNum++; // 设置样式 WritableCellFormat format = new WritableCellFormat( NumberFormats.TEXT); //写入表头信息 for(int i = 0; i < headList.size(); i++) { ws.addCell(new Label(i, rowNum, headList.get(i), format)); } rowNum++; //写入表数据行信息 if(!bodyList.isEmpty()) { int sheetRecNum = 0; for(int i = recNum; i < bodyList.size(); i++, recNum++, rowNum++, sheetRecNum++) { System.out.println(bodyList.size()); //单个SHEET数据行超过SHEET应达到数据限额,则停止写入 if(sheetRecNum >= sheetSize) break;//不能大于65535 List<String> row = bodyList.get(i); for(int j=0; j<row.size(); j++) { ws.addCell(new Label(j, rowNum, row.get(j).toString(), format)); } } } //wwb.write();--------------不能放到这里,移到下面(这个是从网上看到别人的经验得来) //数据写完,退出 if(recNum >= bodyList.size()) break; } //PUSH当前内容到XLS文件中--------这一步很关键,sheet写好之后就要push到xls文件中,然后再新建 wwb.write(); } catch(Exception e) { e.printStackTrace(); } finally { //关闭所有数据流 try { wwb.close(); } catch(Exception e) { } Runtime r = Runtime.getRuntime(); Process p = null ; String cmd[] = {"C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE" , "c:\\Result.xls" }; System.out.println("流已关闭"); try { //<span style="white-space:pre"> </span>p = r.exec(cmd); } catch (Exception e){ //<span style="white-space:pre"> </span>System.out.println("error executing: " +cmd[ 0 ]); } } } public List<String> importXlsFile(File importFile) { Workbook book = null; String strObject=new String(); List<String> list= new ArrayList<String>(); try { book = Workbook.getWorkbook(importFile);//importFile为要导入的xls文件,或二进制的csv文件,提供getXX/setXX方法 } catch (Exception e) { e.printStackTrace(); } if(book != null){ int sheetNo = book.getNumberOfSheets(); for(int i = 0; i < sheetNo; i++){ Sheet sheet=book.getSheet(i); int rowNum = sheet.getRows(); int colNum = sheet.getColumns(); //first row is title, so past for(int r = 1; r < rowNum; r++){//行 strObject=new String(); for(int c = 0; c < colNum;c++){//列 String temp = sheet.getCell(c,r).getContents(); switch (c) { case 0: if(StringUtils.isNotEmpty(temp)){ strObject += temp+","; } break; case 1: if(StringUtils.isNotEmpty(temp)){ strObject += temp+","; } break; case 2: if(StringUtils.isNotEmpty(temp)){ strObject += temp+","; break; } case 3: if(StringUtils.isNotEmpty(temp)){ strObject += temp; break; } default: break; } } list.add(strObject); } } } return list; } }
相关文章推荐
- GridView导出为Excel后,导出的.xls文件无法作为源文件导入的问题
- poi导入导出excel文件,兼容.xls和.xlsx两种格式
- sql server中导入/导出Excel的xls文件
- Java实现文件批量导入导出实例(兼容xls,xlsx)
- java批量导入导出文件的实例分享(兼容xls,xlsx)
- asp.net导出/导入规则的Excel(.xls)文件
- Android 导入导出CSV,xls文件
- NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。
- Asp.Net下导出/导入规则的Excel(.xls)文件
- 用DataGridView导入TXT文件,并导出为XLS文件
- 用toad导入和导出excel(.xls)文件(表的数据)
- Asp.Net下导出/导入规则的Excel(.xls)文件
- [转]Asp.Net下导出/导入规则的Excel(.xls)文件
- Android 导入导出CSV,xls文件 .
- Asp.Net下导出/导入规则的Excel(.xls)文件
- MYSQL导入导出.sql文件
- C# 导出导入TXT文件
- Oracle 数据库导入导出 dmp文件
- C#导入导出日历ics文件 一些探讨
- 将html中table导出到excel xls文件的一种可用方法