java导入/导出Excel

原创 2015年07月06日 18:53:01
public void export(HttpServletRequest request , HttpServletResponse response)
    {
String tableName = request.getParameter("tableName");
String formatTime = request.getParameter("formatTime") +"%";
Map<String,Object> map = new HashMap<String, Object>();
map.put("table", tableName);
map.put("formatTime", formatTime);
records = recoredAO.queryRecords(map); //查询所有数据
               String header[] = {"name","number"};

HSSFSheet hssfSheet = workbook.createSheet();
hssfSheet.setColumnWidth(0, 10*200);
hssfSheet.setColumnWidth(1, 15*200);

HSSFRow hssfRow = hssfSheet.createRow(0);

for (int i = 0; i < header.length; i++)
{
HSSFCell hssfCell = hssfRow.createCell(i);
hssfCell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置列类型
hssfCell.setCellValue(header[i]);//设置表头名称
}
HSSFRow hssfRow1;

for (int i = 0 ; i < records.size() ; i++)
{
hssfRow1 = hssfSheet.createRow(i+1);

Record record = records.get(i);

if(ObjectUtils.notNull(record))
{
hssfRow1.createCell(0).setCellValue(record.getId());
hssfRow1.createCell(1).setCellValue(record.getAccessTime());
}

}

   try
   {
request.setCharacterEncoding("UTF-8");
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/msexcel;charset=UTF-8"); 
response.addHeader("Content-Disposition", "attachment;filename=\""+formatTime.replace("%", " ") 
+ new String(("统计表.xls").getBytes("GBK"),  
"ISO8859_1") + "\"");

OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();
outputStream.close();

  }
  catch (IOException e)
  {
e.printStackTrace();
  }
}

    }

//读取数据

 public static String[][] getData() throws FileNotFoundException, IOException {


      List<String[]> result = new ArrayList<String[]>();


      int rowSize = 2; //行的大小,即每行有多少列


      BufferedInputStream in = new BufferedInputStream(new FileInputStream("D:\\手机版代注册表2.xlsx"));
      // 打开HSSFWorkbook
      XSSFWorkbook wb = new XSSFWorkbook(in);
      XSSFCell cell = null;


      for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) 
      {
          XSSFSheet st = wb.getSheetAt(sheetIndex);
          // 第一行为标题,不取
          for (int rowIndex = 40764; rowIndex <= st.getLastRowNum(); rowIndex++) 
          {
             XSSFRow row = st.getRow(rowIndex);


             if (row == null) { continue;}


             String[] values = new String[rowSize]; //两列 name number


             Arrays.fill(values, "");


             for (int columnIndex = 0; columnIndex < rowSize; columnIndex++) {


                 String value = "";


                 cell = row.getCell(columnIndex);


                 if (cell != null) {


                    switch (cell.getCellType()) {


                    case HSSFCell.CELL_TYPE_STRING:


                        value = cell.getStringCellValue();


                        break;


                    case HSSFCell.CELL_TYPE_NUMERIC:


                        if (HSSFDateUtil.isCellDateFormatted(cell)) {


                           Date date = (Date) cell.getDateCellValue();


                           if (date != null) {


                               value = new SimpleDateFormat("yyyy-MM-dd") .format(date);


                           } else {


                               value = "";


                           }
                        } else {


                           value = new DecimalFormat("0").format(cell .getNumericCellValue());
                        }


                        break;


                    case HSSFCell.CELL_TYPE_BLANK:


                        break;


                   
                    default:value = ""; }


                 }


                 if (columnIndex == 1 && value.trim().equals("")) {


                    break;


                 }


                 values[columnIndex] = rightTrim(value);


             }
                  result.add(values);


          }


      }


      in.close();


      String[][] returnArray = new String[result.size()][rowSize];//n行2列


      for (int i = 0; i < returnArray.length; i++) {


          returnArray[i] = (String[]) result.get(i);


      }


      return returnArray;


   }


  


   /**


    * 去掉字符串右边的空格


    * @param str 要处理的字符串


    * @return 处理后的字符串


    */


    public static String rightTrim(String str) {


      if (str == null) {


          return "";


      }


      int length = str.length();


      for (int i = length - 1; i >= 0; i--) {


          if (str.charAt(i) != 0x20) {


             break;


          }


          length--;


      }


      return str.substring(0, length);


   }

Java____利用HSSF导出、导入excel文件

————————————HSSF、XSSF、SXSSF的比较—————————— HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现  XSSF是POI工程对Excel 20...
  • u010241120
  • u010241120
  • 2015年09月19日 10:23
  • 2497

java大数据量的excel导入导出

大数据量导入导出, 亲测可解决百万级excel的导入导出! 基础: 03版(xls)excel文件每个sheet最大长度为 65535 07版(xlsx)excel文件每个sheet最大长度为 1...
  • u013488171
  • u013488171
  • 2017年10月09日 17:11
  • 1862

Java基于注解和反射导入导出Excel(Bean转Excel,Excel转Bean)

1. 提供了@Excel注解 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
  • zjxbllg2008
  • zjxbllg2008
  • 2016年11月30日 21:54
  • 2474

Java实现Excel的导入和导出

一、下载jxl.jar包导入到工程中 http://download.csdn.net/detail/lrici/9758600 二、新建Book.java package com.cc.r...
  • Lrici
  • Lrici
  • 2017年02月20日 13:43
  • 12495

java对excl的导入和导出的简单实例

用到的JAR包如下(可以直接到POI官网上下载也可以在文章的附件中下载): poi-3.9-20121203.jar poi-ooxml-3.9-20121203.jar poi-ooxml-s...
  • m13653423731
  • m13653423731
  • 2017年03月30日 16:28
  • 803

java实现Excel文件的导入导出

java实现对Excel文件的操作主要是通过POI来实现的 1. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft...
  • qq_33547950
  • qq_33547950
  • 2017年01月16日 15:34
  • 958

java servlet 导入 导出excel

/**  * 导出excel  */ @WebServlet("/ExportEnrollExamine") public class ExportAchieveExamineServlet ...
  • chengshizhen
  • chengshizhen
  • 2017年10月13日 10:28
  • 360

java web Excel导入、导出的实现

在做web开发时,我们经常会用到数据表格的导入导出功能,这样可以帮我们节省人工操作的时间,极大提高办事效率,下面,直入正题: 笔者所做的导入导出是针对java springMVC框架、工作簿poi以...
  • qiyongkang520
  • qiyongkang520
  • 2015年11月02日 21:54
  • 8546

JAVA操作Excel单元测试---POI版

/** * 本测试使用的POI版本为3.6 * 其Excel测试案例全部来自POI文档,部分根据情况做了不同程度的修改. * 该测试仅供交流学习使用,代码根据个人理解基本上已做注释 *...
  • kings988
  • kings988
  • 2010年09月06日 11:23
  • 4558

java导入导出excel表格

java通过jxl,导入导出操作excel。
  • liangwenmail
  • liangwenmail
  • 2015年08月29日 11:23
  • 5009
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java导入/导出Excel
举报原因:
原因补充:

(最多只允许输入30个字)