java导入导出excel相关

来源:互联网 发布:开元知海e读 编辑:程序博客网 时间:2024/05/21 15:43
<a target=_blank target="_blank" href="http://my.oschina.net/u/927151/blog/349284" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">点击查看原网页解析excel导出</a>

第二篇相关文章


hssf,xssf和sxssf的区别

HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现 XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现 
可以理解为hssf是对xsl文件的操作,xssf是对xlsx文件的操作
以下摘自:http://wenku.baidu.com/view/b9023573b307e87101f6965f.html 
package com.cvt.smarthome.application.basedata.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Calendar;import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.POIFSFileSystem;import org.apache.poi.ss.usermodel.RichTextString;/** * 共分为六部完成根据模板导出excel操作:<br/> * 第一步、设置excel模板路径(setSrcPath)<br/> * 第二步、设置要生成excel文件路径(setDesPath)<br/> * 第三步、设置模板中哪个Sheet列(setSheetName)<br/> * 第四步、获取所读取excel模板的对象(getSheet)<br/> * 第五步、设置数据(分为种类型数据:setCellStrValue、setCellDateValue、setCellDoubleValue、setCellBoolValue、setCellCalendarValue、 * setCellRichTextStrValue)<br/> * 第六步、完成导出 (exportToNewFile)<br/> *  * @author Administrator *  */public class ExcelUtil {private StringsrcXlsPath= "";// // excel模板路径private StringdesXlsPath= "";private StringsheetName= "";POIFSFileSystemfs= null;HSSFWorkbookwb= null;HSSFSheetsheet= null;/** * 第一步、设置excel模板路径 *  * @param srcXlsPath */public void setSrcPath(String srcXlsPath) {this.srcXlsPath = srcXlsPath;}/** * 第二步、设置要生成excel文件路径 *  * @param desXlsPath */public void setDesPath(String desXlsPath) {this.desXlsPath = desXlsPath;}/** * 第三步、设置模板中哪个Sheet列 *  * @param sheetName */public void setSheetName(String sheetName) {this.sheetName = sheetName;}/** * 第四步、获取所读取excel模板的对象 */public void getSheet() {try {File fi = new File(srcXlsPath);if (!fi.exists()) {System.out.println("模板文件:" + srcXlsPath + "不存在!");return;}fs = new POIFSFileSystem(new FileInputStream(fi));wb = new HSSFWorkbook(fs);sheet = wb.getSheet(sheetName);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}/** * 第五步、设置字符串类型的数据 *  * @param rowIndex *            --行值 * @param cellnum *            --列值 * @param value *            --字符串类型的数据 */public void setCellStrValue(int rowIndex, int cellnum, String value) {HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);cell.setCellValue(value);}/** * 第五步、设置日期/时间类型的数据 *  * @param rowIndex *            --行值 * @param cellnum *            --列值 * @param value *            --日期/时间类型的数据 */public void setCellDateValue(int rowIndex, int cellnum, Date value) {HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);cell.setCellValue(value);}/** * 第五步、设置浮点类型的数据 *  * @param rowIndex *            --行值 * @param cellnum *            --列值 * @param value *            --浮点类型的数据 */public void setCellDoubleValue(int rowIndex, int cellnum, double value) {HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);cell.setCellValue(value);}/** * 第五步、设置Bool类型的数据 *  * @param rowIndex *            --行值 * @param cellnum *            --列值 * @param value *            --Bool类型的数据 */public void setCellBoolValue(int rowIndex, int cellnum, boolean value) {HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);cell.setCellValue(value);}/** * 第五步、设置日历类型的数据 *  * @param rowIndex *            --行值 * @param cellnum *            --列值 * @param value *            --日历类型的数据 */public void setCellCalendarValue(int rowIndex, int cellnum, Calendar value) {HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);cell.setCellValue(value);}/** * 第五步、设置富文本字符串类型的数据。可以为同一个单元格内的字符串的不同部分设置不同的字体、颜色、下划线 *  * @param rowIndex *            --行值 * @param cellnum *            --列值 * @param value *            --富文本字符串类型的数据 */public void setCellRichTextStrValue(int rowIndex, int cellnum,RichTextString value) {HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);cell.setCellValue(value);}/** * 第六步、完成导出 */public void exportToNewFile() {FileOutputStream out;try {out = new FileOutputStream(desXlsPath);wb.write(out);out.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

以下为自己仿写的用于xslx格式的导出excel(根据模板)
public class poiutil {public String inModelPath;//模板路径public String outXslxPath;//输出路径public String caselsh;FileInputStream fis;XSSFSheet sheet;//需要用到的sheetXSSFWorkbook workBook;        public String getCaselsh() {return caselsh;}public void setCaselsh(String caselsh) {this.caselsh = caselsh;}public String getInModelPath() {return inModelPath;}public void setInModelPath(String inModelPath) {this.inModelPath = inModelPath;}public String getOutXslxPath() {return outXslxPath;}public void setOutXslxPath(String outXslxPath) {this.outXslxPath = outXslxPath;}//获取sheetpublic void getSheet(){try { fis = new FileInputStream(inModelPath); workBook=new XSSFWorkbook(fis); sheet= workBook.getSheetAt(0);          //获取模板} catch (Exception e) {e.printStackTrace();}  }//为sheet需要改变的部分赋值public void setCellStrValue(int rowIndex, int cellnum, String value) {   XSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);      cell.setCellValue(value);  } //输出excelpublic void exportExcel(){String fileName=caselsh+".xslx";            try {OutputStream out=new FileOutputStream(outXslxPath+fileName); workBook.write(out);                       fis.close();                 out.flush();                   out.close();} catch (Exception e) {e.printStackTrace();}}}

---------------------------文件上传到服务器---------------------------------

request.getSession().getServletContext().getRealPath(logoPathDir/保存的目录)

这句话表示文件上传服务器的目录。






0 0
原创粉丝点击