@param title excel文件名
  @param excelTopName 表头中文名字(显示在第一行的中文表头内容)
  @param header 表头字段属性(根据该属性获取对应的属性值,表头内容作为key值,根据该key值循环获取内容)
  @param content 内容
  @param response 响应
1 public boolean downloadExcel(String title, String[] excelHeaderChName,
String[] header, List<Map<String, String>> content,
HttpServletResponse response) {
try {
String name = java.net.URLEncoder.encode(title, "UTF8");
String filename = name
+ new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
filename = new String(filename.getBytes("UTF-8"), "ISO-8859-1");
response.reset();
response.setCharacterEncoding("utf-8");
response.setContentType("application/msexcel");// 设置为下载application/x-download
response.setHeader("Content-Disposition", "inline;filename=\""
+ filename + ".xls\"");
OutputStream os = response.getOutputStream(); WritableWorkbook wwb = Workbook.createWorkbook(os);
// 创建excel工作表,指定名字和位置
WritableSheet sheet = wwb.createSheet(title, 0); // 生成表头(行宽)
for (int i = 0; i < header.length; i++) {
sheet.addCell(new Label(i, 0, excelHeaderChName[i]));
// 设置excel列宽
sheet.setColumnView(i, 15);
} // 内容
for (int i = 0; i < content.size(); i++) {
for (int j = 0; j < content.get(i).size(); j++) {
sheet.addCell(new Label(j, i + 1, content.get(i).get(
header[j])
+ ""));
}
} // 写入工作表
wwb.write();
wwb.close();
os.close();
} catch (IOException | WriteException e) {
e.printstackTrace();
}
return true;
}
2019-1-7:使用poi导出Excel文件到浏览器时,出现内容乱码的情况,尝试各种方式都不行,后来改用jxl方式来导出Excel,问题得到解决。 在本地运行不会出现乱码,
但在resin服务上始终乱码,查看了服务器上的编码格式是gbk格式,打印了日志查询出来的内容也没有乱码,不清楚什么原因。。。望小伙伴们解答疑惑 附上poi导出Excel代码

/**
* @Description: 导出Excel
* @param workbook
* @param sheetNum (sheet的位置,0表示第一个表格中的第一个sheet)
* @param sheetTitle (sheet的名称)
* @param headers (表格的列标题)
* @param result (表格的数据)
* @param out (输出流)
* @throws Exception
*/
public static void exportExcel(HSSFWorkbook workbook, int sheetNum, String sheetTitle, String[] headers,
  List<List<String>> result) throws Exception {
  // 生成一个表格
  HSSFSheet sheet = workbook.createSheet();
  workbook.setSheetName(sheetNum, sheetTitle);
  // 生成一个样式
  HSSFCellStyle style = workbook.createCellStyle();
  // 设置这些样式
  style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
  style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
  style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
  style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
  style.setBorderRight(HSSFCellStyle.BORDER_THIN);
  style.setBorderTop(HSSFCellStyle.BORDER_THIN);
  style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  // 生成一个字体
  HSSFFont font = workbook.createFont();
  font.setColor(HSSFColor.BLACK.index);
  font.setFontHeightInPoints((short) 12);
  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  // 把字体应用到当前的样式
  style.setFont(font);

  // 指定当单元格内容显示不下时自动换行
  style.setWrapText(true);

  // 产生表格标题行
  HSSFRow row = sheet.createRow(0);
  for (int i = 0; i < headers.length; i++) {
    HSSFCell cell = row.createCell((short)i);

    cell.setCellStyle(style);
    HSSFRichTextString text = new HSSFRichTextString(headers[i]);

    // tempContent = new String(tempContent.getBytes("UTF-8"), "ISO-8859-1");
    //tempContent = new String(tempContent.getBytes("ISO-8859-1"), "UTF-8");

    cell.setCellValue(new String(text.toString().getBytes("GBK"), "ISO-8859-1"));
  }
  // 遍历集合数据,产生数据行
  if (result != null) {
    int index = 1;
      for (List<String> m : result) {
        row = sheet.createRow(index);
        int cellIndex = 0;
        for (String str : m) {
          HSSFCell cell = row.createCell((short)cellIndex);
          if(null == str || str.equals("")) {
            cell.setCellValue("");
          }else {
            cell.setCellValue(str.toString());
          }
        log.info("####"+str.toString());
        cellIndex++;
      }
    index++;
  }
}

}

excel导出简单示例(jxl jar包)的更多相关文章

  1. excel导出 jxl.jar包

    导入jxl.jar包, 代码如下: package com.gree; import java.io.IOException; import java.io.OutputStream; import ...

  2. Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现

    以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...

  3. Excel文件按照指定模板导入数据(用jxl.jar包)

        本文中的方法只适合Excel2003,要读取Excel2007最好使用poi.jar,据说poi.jar还在更新,jxl.jar已经不更新了,处理Excel文件的读写问题最好还是学习poi.j ...

  4. 【转】maven导出项目依赖的jar包

    本文转自:http://my.oschina.net/cloudcoder/blog/212648 一.导出到默认目录 targed/dependency 从Maven项目中导出项目依赖的jar包:进 ...

  5. IntelliJ IDEA导出Java 可执行Jar包

    原文:IntelliJ IDEA导出Java 可执行Jar包 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 打开File -> Project Stru ...

  6. Maven导出Project依赖的jar包

    Maven导出Project依赖的jar包 从Maven仓库中导出jar包: mvn dependency:copy-dependencies 会导出到Project的targed/dependenc ...

  7. eclipse maven 导出项目依赖的jar包

    转自:https://blog.csdn.net/andyliulin/article/details/46544555 一.导出到默认目录 targed/dependency 从Maven项目中导出 ...

  8. eclipse maven jar工程导出项目依赖的jar包

    今天遇到个事,给业务开发/测试搞个了转换工具,是使用swing写的,依赖了很多的三方包,为了方便打算以bat方式提供,但是要导出依赖的三方jar,网上搜了下,如下(已测试): 一.导出到默认目录 ta ...

  9. maven导出项目依赖的jar包

    摘要: 在进行项目部署时,需要将maven项目所依赖的jar导出到指定目录,本文讲解如何导出项目依赖的jar包 一.导出到默认目录 targed/dependency 从Maven项目中导出项目依赖的 ...

随机推荐

  1. ivew select组件 DatePicker组件的清空

    <Form ref="formInline" :model="formInline" :rules="ruleInline" inli ...

  2. bzoj5047 [Lydsy1709月赛]空间传送装置 最短路

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5047 题解 题目中没有说可以停留在一个点等待.问了别人才知道停留是可以的. 那么既然停留是可以 ...

  3. ubuntu 安装apache2 二进制包

    官方安装教程  http://httpd.apache.org/docs/2.4/install.html 一.下载安装包 进入https://httpd.apache.org/download.cg ...

  4. HTTP: 状态码200~505说明

    HTTP状态码(HTTP Status Code) 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 所有状态解释: 1xx(临时响应) 表示 ...

  5. 【leetcode】1008. Construct Binary Search Tree from Preorder Traversal

    题目如下: Return the root node of a binary search tree that matches the given preorder traversal. (Recal ...

  6. v-for中的key的使用【key的作用主要是是为了高效的更新虚拟DOM】

    vue中列表循环需加:key="唯一标识" 唯一标识可以是item里面id index等,因为vue组件高度复用增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用 ...

  7. 26 October in 614

    Practice tower 有 \(N\,(2\le N\le 600000)\) 块砖,要搭一个 \(N\) 层的塔,要求:如果砖 \(A\) 在砖 \(B\) 上面,那么 \(A\) 不能比 \ ...

  8. LintCode之各位相加

    题目描述: 我的代码 public class Solution { /* * @param num: a non-negative integer * @return: one digit */ p ...

  9. servlet3.0 异步处理

    转:https://blog.csdn.net/benjamin_whx/article/details/38874657 13.1.概述 计算机的内存是有限的.Servlet/JSP容器的设计者很清 ...

  10. 【原】webpack--文件监听的原理

    轮询判断文件的最后编辑时间是否发生变化,一开始有个文件的修改时间,先存储起来这个修改时间,下次再有修改就会和上次修改时间比对,发现不一致的时候不会立即告诉监听者,而是把文件修改缓存起来,等待一段时间, ...