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实现导入导出Excel表

  • 2017年11月02日 09:18
  • 38.36MB
  • 下载

Java poi 实现excel导入导出

  • 2017年10月23日 11:10
  • 227KB
  • 下载

Java中导入、导出Excel

一、介绍   当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打...

java之poi操作excel-批量导入导出

介绍采用poi批量导入导出excel数据

java 导入导出excel文件(工具类)

  • 2017年07月15日 16:26
  • 23.38MB
  • 下载

java Excel 导入导出

  • 2012年12月24日 22:09
  • 640KB
  • 下载

java 导入导出Excel工具类ExcelUtil

前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hibern...

java 导入导出excel

  • 2013年04月03日 09:50
  • 62KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java导入/导出Excel
举报原因:
原因补充:

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