一脸懵逼学习Java操作Excel之POI(Apache POI)

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

1:下面简单的程序来创建一个空白Microsoft Excel工作簿。

请记住一定要引入jar包,切记:http://poi.apache.org/download.html

如:poi-3.9-20121203.jar

 1 package com.bie;
 2
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5
 6 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 7 import org.apache.poi.ss.usermodel.Workbook;
 8
 9 /**
10  *
11  * @author biexiansheng
12  *
13  */
14 public class PoiTest {
15
16     public static void main(String[] args) throws IOException {
17         //创建一个空的工作簿
18         Workbook wb = new HSSFWorkbook();
19         //创建输出流
20         FileOutputStream fos = new FileOutputStream("c:\\poi.xlsx");
21         //写入到流中,创建这个excel文件
22         wb.write(fos);
23         //关闭流
24         fos.close();
25
26     }
27 }

2:创建一个excel,然后插入一些数据测试一下;

 1 package com.bie;
 2
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5 import java.util.Calendar;
 6 import java.util.Date;
 7
 8 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 9 import org.apache.poi.ss.usermodel.Cell;
10 import org.apache.poi.ss.usermodel.CellStyle;
11 import org.apache.poi.ss.usermodel.CreationHelper;
12 import org.apache.poi.ss.usermodel.Row;
13 import org.apache.poi.ss.usermodel.Sheet;
14 import org.apache.poi.ss.usermodel.Workbook;
15
16 /**
17  *
18  * @author biexiansheng
19  *
20  */
21 public class PoiTest {
22
23     public static void main(String[] args) throws IOException {
24         //创建一个空的工作簿
25         Workbook wb = new HSSFWorkbook();
26         //创建sheet页
27         Sheet sheet1 = wb.createSheet("第一个sheet页");
28         wb.createSheet("第二个sheet页");
29         //创建一个行
30         Row createRow = sheet1.createRow(0);
31         //创建一个单元格,第一列
32         Cell createCell = createRow.createCell(0);
33         createCell.setCellValue("编号");
34         //创建一个单元格,第二列,然后对此单元格进行赋值
35         createRow.createCell(1).setCellValue("姓名");
36         //创建一个单元格,第三列,然后对此单元格进行赋值
37         createRow.createCell(2).setCellValue("年龄");
38         //创建一个单元格,第四列,然后对此单元格进行赋值
39         createRow.createCell(3).setCellValue("性别");
40         //创建一个单元格,第五列,然后对此单元格进行赋值
41         createRow.createCell(4).setCellValue("生日");
42
43         //创建第二行
44         Row createRow2 = sheet1.createRow(1);
45         //创建单元格,然后对单元格进行赋值
46         createRow2.createCell(0).setCellValue("10010");
47         createRow2.createCell(1).setCellValue("张三");
48         createRow2.createCell(2).setCellValue("15");
49         createRow2.createCell(3).setCellValue("男");
50
51         //设置时间格式
52         //创建一个单元格的样式,单元格样式类
53         CellStyle cellStyle = wb.createCellStyle();
54         CreationHelper creationHelper = wb.getCreationHelper();
55         //格式化日期
56         cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("yyyy-MM-dd HH:mm:ss"));
57         //得到这个单元格,用于赋值和设置单元格的格式
58         //第一种方法:
59         Cell createCell2 = createRow2.createCell(4);
60         createCell2.setCellValue(new Date());
61         createCell2.setCellStyle(cellStyle);
62
63         //第二种方法:
64         //Cell createCell3 = createRow2.createCell(4);
65         //createCell3.setCellValue(Calendar.getInstance());
66         //createCell3.setCellStyle(cellStyle);
67
68
69         //创建输出流
70         FileOutputStream fos = new FileOutputStream("c:\\poi.xlsx");
71         //写入到流中,创建这个excel文件
72         wb.write(fos);
73         //关闭流
74         fos.close();
75
76     }
77 }

可以看到excel里面的数据内容如下所示:

3:创建一个时间格式的单元格

package com.bie;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

/**
 *
 * @author biexiansheng
 *
 */
public class PoiTest {

    public static void main(String[] args) throws IOException {
        //创建一个空的工作簿
        Workbook wb = new HSSFWorkbook();
        //创建sheet页
        Sheet sheet1 = wb.createSheet("第一个sheet页");
        wb.createSheet("第二个sheet页");
        //创建一个行
        Row createRow = sheet1.createRow(0);
        //创建一个单元格,第一列
        Cell createCell = createRow.createCell(0);
        createCell.setCellValue("编号");
        //创建一个单元格,第二列,然后对此单元格进行赋值
        createRow.createCell(1).setCellValue("姓名");
        //创建一个单元格,第三列,然后对此单元格进行赋值
        createRow.createCell(2).setCellValue("年龄");
        //创建一个单元格,第四列,然后对此单元格进行赋值
        createRow.createCell(3).setCellValue("性别");
        //创建一个单元格,第五列,然后对此单元格进行赋值
        createRow.createCell(4).setCellValue("生日");

        //创建第二行
        Row createRow2 = sheet1.createRow(1);
        //创建单元格,然后对单元格进行赋值
        createRow2.createCell(0).setCellValue("10010");
        createRow2.createCell(1).setCellValue("张三");
        createRow2.createCell(2).setCellValue("15");
        createRow2.createCell(3).setCellValue("男");

        //设置时间格式
        //创建一个单元格的样式,单元格样式类
        CellStyle cellStyle = wb.createCellStyle();
        CreationHelper creationHelper = wb.getCreationHelper();
        //格式化日期
        cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("yyyy-MM-dd HH:mm:ss"));
        //得到这个单元格,用于赋值和设置单元格的格式
        Cell createCell2 = createRow2.createCell(4);
        createCell2.setCellValue(new Date());
        createCell2.setCellStyle(cellStyle);

        //创建输出流
        FileOutputStream fos = new FileOutputStream("c:\\poi.xlsx");
        //写入到流中,创建这个excel文件
        wb.write(fos);
        //关闭流
        fos.close();

    }
}

运行效果如下所示:

4:遍历工作簿的行和列并且获取单元格内容

 1 package com.bie;
 2
 3 import java.io.FileInputStream;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.util.Calendar;
 7 import java.util.Date;
 8
 9 import org.apache.poi.hssf.usermodel.HSSFCell;
10 import org.apache.poi.hssf.usermodel.HSSFRow;
11 import org.apache.poi.hssf.usermodel.HSSFSheet;
12 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
13 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
14 import org.apache.poi.ss.usermodel.Cell;
15 import org.apache.poi.ss.usermodel.CellStyle;
16 import org.apache.poi.ss.usermodel.CreationHelper;
17 import org.apache.poi.ss.usermodel.Row;
18 import org.apache.poi.ss.usermodel.Sheet;
19 import org.apache.poi.ss.usermodel.Workbook;
20
21 /**
22  *
23  * @author biexiansheng
24  *
25  */
26 public class PoiTest2 {
27
28     public static void main(String[] args) throws IOException {
29         FileInputStream fis = new FileInputStream("c:\\poi.xlsx");
30         //接受输入流
31         POIFSFileSystem pfs = new POIFSFileSystem(fis);
32         //创建一个工作簿
33         HSSFWorkbook hwb = new HSSFWorkbook(pfs);
34         //获取第一个sheet页
35         HSSFSheet sheetAt = hwb.getSheetAt(0);
36         if(sheetAt == null){
37             return ;
38         }
39
40         //遍历行里面的单元格内容.
41         for(int i =0; i<=sheetAt.getLastRowNum(); i++){
42             //得到每一行
43             HSSFRow row = sheetAt.getRow(i);
44             //如果为空就跳出
45             if(row == null){
46                 continue;
47             }
48             //遍历列
49             for(int j=0; j<row.getLastCellNum(); j++){
50                 //遍历列里面的内容
51                 HSSFCell cell = row.getCell(j);
52                 if(cell == null){
53                     continue;
54                 }
55                 //输出列里面的内容
56                 System.out.print(" " + cell);
57             }
58             System.out.println();
59         }
60     }
61
62
63     public static String getValue(HSSFCell cell){
64         if(cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){
65             return String.valueOf(cell.getBooleanCellValue());
66         }else if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
67             return String.valueOf(cell.getNumericCellValue());
68         }else{
69             return String.valueOf(HSSFCell.CELL_TYPE_STRING);
70         }
71     }
72
73 }

运行效果如下所示:

5:文本提取

 1 package com.bie;
 2
 3 import java.io.FileInputStream;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.util.Calendar;
 7 import java.util.Date;
 8
 9 import org.apache.poi.hssf.extractor.ExcelExtractor;
10 import org.apache.poi.hssf.usermodel.HSSFCell;
11 import org.apache.poi.hssf.usermodel.HSSFRow;
12 import org.apache.poi.hssf.usermodel.HSSFSheet;
13 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
14 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
15 import org.apache.poi.ss.usermodel.Cell;
16 import org.apache.poi.ss.usermodel.CellStyle;
17 import org.apache.poi.ss.usermodel.CreationHelper;
18 import org.apache.poi.ss.usermodel.Row;
19 import org.apache.poi.ss.usermodel.Sheet;
20 import org.apache.poi.ss.usermodel.Workbook;
21
22 /**
23  *
24  * @author biexiansheng
25  *
26  */
27 public class PoiTest3 {
28
29     public static void main(String[] args) throws IOException {
30         FileInputStream fis = new FileInputStream("c:\\poi.xlsx");
31         //接受输入流
32         POIFSFileSystem pfs = new POIFSFileSystem(fis);
33         //创建一个工作簿
34         HSSFWorkbook hwb = new HSSFWorkbook(pfs);
35         //获取第一个sheet页
36         HSSFSheet sheetAt = hwb.getSheetAt(0);
37         if(sheetAt == null){
38             return ;
39         }
40         //文本抽取
41         ExcelExtractor excelExtractor = new ExcelExtractor(hwb);
42         System.out.println(excelExtractor.getText());
43     }
44
45 }

运行效果如下所示://不要sheet的名称
 excelExtractor.setIncludeSheetNames(false);

6:单元格对齐方式,单元格边框处理,单元格填充色和颜色操作,单元格合并

  1 package com.bie;
  2
  3 import java.io.FileOutputStream;
  4 import java.io.IOException;
  5
  6 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  7 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
  8 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  9 import org.apache.poi.ss.usermodel.Cell;
 10 import org.apache.poi.ss.usermodel.CellStyle;
 11 import org.apache.poi.ss.usermodel.IndexedColors;
 12 import org.apache.poi.ss.usermodel.Row;
 13 import org.apache.poi.ss.usermodel.Sheet;
 14 import org.apache.poi.ss.usermodel.Workbook;
 15 import org.apache.poi.ss.util.CellRangeAddress;
 16
 17 /**
 18 * @author  Author:别先生
 19 * @date Date:2017年9月9日 上午10:14:31
 20 *
 21 *
 22 */
 23 public class PoiTest {
 24
 25     /***
 26      * 创建一个单元格并为其设定指定的对齐方式
 27      * @param wb 工作簿
 28      * @param row 行
 29      * @param column 列
 30      * @param halign 水平对齐的方式
 31      * @param valign 垂直对齐的方式
 32      */
 33     private static void createCell(Workbook wb,Row row,short column,short halign,short valign){
 34         //创建单元格
 35         Cell cell = row.createCell(column);
 36         //设置单元格的值
 37         cell.setCellValue(new HSSFRichTextString("测试内容"));
 38         //创建单元格的样式
 39         CellStyle cellStyle = wb.createCellStyle();
 40         //设置单元格水平对齐方式
 41         cellStyle.setAlignment(halign);
 42         //设置单元格垂直对齐方式
 43         cellStyle.setVerticalAlignment(valign);
 44
 45         //设置边框线和颜色
 46         //底部边框
 47         cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
 48         //底部颜色
 49         cellStyle.setBottomBorderColor(IndexedColors.BLUE.getIndex());
 50
 51         //左边边框
 52         cellStyle.setBorderLeft(CellStyle.BORDER_DASH_DOT);
 53         //左边颜色
 54         cellStyle.setBottomBorderColor(IndexedColors.RED.getIndex());
 55
 56         //右边边框
 57         cellStyle.setRightBorderColor(CellStyle.ALIGN_FILL);
 58         //右边边框颜色
 59         cellStyle.setBottomBorderColor(IndexedColors.DARK_YELLOW.getIndex());
 60
 61         //顶部边框
 62         cellStyle.setBorderTop(CellStyle.BORDER_DOTTED);
 63         //顶部颜色
 64         cellStyle.setTopBorderColor(IndexedColors.AUTOMATIC.getIndex());
 65
 66         //设置单元格填充色和颜色操作
 67         //设置背景颜色
 68         cellStyle.setFillBackgroundColor(IndexedColors.GREEN.getIndex());
 69         cellStyle.setFillPattern(CellStyle.BIG_SPOTS);
 70         //设置前景颜色
 71         cellStyle.setFillForegroundColor(IndexedColors.BLUE.getIndex());
 72         cellStyle.setFillPattern(CellStyle.BIG_SPOTS);
 73
 74         //设置单元格的样式
 75         cell.setCellStyle(cellStyle);
 76     }
 77
 78     public static void main(String[] args) throws IOException {
 79         //定义一个工作簿
 80         Workbook wb =new HSSFWorkbook();
 81         //创建第一个sheet页
 82         Sheet createSheet = wb.createSheet("第一个sheet");
 83         //创建第一行
 84         Row createRow = createSheet.createRow(0);
 85         createRow.setHeightInPoints(30);
 86
 87         //调用工具方法,创建单元格
 88         //单元格的对齐方式的调用和使用
 89         createCell(wb, createRow, (short)0, HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_BOTTOM);;
 90         createCell(wb, createRow, (short)1, HSSFCellStyle.ALIGN_LEFT, HSSFCellStyle.VERTICAL_CENTER);;
 91         createCell(wb, createRow, (short)2, HSSFCellStyle.ALIGN_RIGHT, HSSFCellStyle.VERTICAL_TOP);;
 92         createCell(wb, createRow, (short)3, HSSFCellStyle.ALIGN_JUSTIFY, HSSFCellStyle.VERTICAL_JUSTIFY);;
 93
 94
 95         //创建单元格
 96         //创建第3行
 97         Row createRow2 = createSheet.createRow(2);
 98         createRow.setHeightInPoints(30);
 99         //创建第一列和第二列
100         Cell createCell = createRow2.createCell(0);
101         createCell.setCellValue("单元格合并1");
102
103         Cell createCell2 = createRow2.createCell(1);
104         createCell2.setCellValue("单元格合并2");
105
106         //单元格合并,起始行,结束行,起始列,结束列
107         createSheet.addMergedRegion(new CellRangeAddress(2, 3, 0, 3));
108
109
110         //创建输出流
111         FileOutputStream fos = new FileOutputStream("d:\\poi.xlsx");
112         //将内容写到excel文件中
113         wb.write(fos);
114         //关闭流
115         fos.close();
116     }
117
118 }

演示效果如下所示:

7:字体处理的单元格

 1 package com.bie;
 2
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5
 6 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 7 import org.apache.poi.ss.usermodel.Cell;
 8 import org.apache.poi.ss.usermodel.CellStyle;
 9 import org.apache.poi.ss.usermodel.Font;
10 import org.apache.poi.ss.usermodel.Row;
11 import org.apache.poi.ss.usermodel.Sheet;
12 import org.apache.poi.ss.usermodel.Workbook;
13 import org.apache.poi.ss.util.CellRangeAddress;
14
15 /**
16 * @author  Author:别先生
17 * @date Date:2017年9月9日 上午10:14:31
18 *
19 *
20 */
21 public class PoiTest2 {
22
23
24     public static void main(String[] args) throws IOException {
25         //定义一个工作簿
26         Workbook wb =new HSSFWorkbook();
27         //创建第一个sheet页
28         Sheet createSheet = wb.createSheet("第一个sheet");
29         //创建第一行
30         Row createRow = createSheet.createRow(0);
31
32         //创建一个字体处理类
33         Font createFont = wb.createFont();
34         createFont.setFontHeightInPoints((short)25);
35         createFont.setFontName("Courier New");
36         createFont.setItalic(true);
37         createFont.setStrikeout(true);
38
39         CellStyle createCellStyle = wb.createCellStyle();
40         createCellStyle.setFont(createFont);
41
42         //创建单元格
43         Cell createCell = createRow.createCell((short)1);
44         createCell.setCellValue("这是一个字体设计的单元格");
45         createCell.setCellStyle(createCellStyle);
46
47         //创建输出流
48         FileOutputStream fos = new FileOutputStream("d:\\poi.xlsx");
49         //将内容写到excel文件中
50         wb.write(fos);
51         //关闭流
52         fos.close();
53     }
54
55 }

演示效果如下所示:

8:读取和重写工作簿

 1 package com.bie;
 2
 3 import java.io.FileInputStream;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6
 7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 8 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 9 import org.apache.poi.ss.usermodel.Cell;
10 import org.apache.poi.ss.usermodel.Row;
11 import org.apache.poi.ss.usermodel.Sheet;
12 import org.apache.poi.ss.usermodel.Workbook;
13
14 /**
15 * @author  Author:别先生
16 * @date Date:2017年9月9日 上午10:14:31
17 *
18 *
19 */
20 public class PoiTest3 {
21
22
23     public static void main(String[] args) throws IOException {
24         //创建输入流
25         FileInputStream fis = new FileInputStream("d:\\poi.xlsx");
26         //将获取到文件流放到内存中
27         POIFSFileSystem pfs = new POIFSFileSystem(fis);
28         //创建一个工作簿
29         Workbook wb = new HSSFWorkbook(pfs);
30         //获取第一个sheet页
31         Sheet sheetAt = wb.getSheetAt(0);
32         //获取第6行
33         Row row = sheetAt.getRow(5);
34         //获取第六个单元格
35         Cell cell = row.getCell(0);
36         if(cell == null){
37             cell = row.createCell(3);
38         }
39         cell.setCellType(Cell.CELL_TYPE_STRING);
40         cell.setCellValue("测试单元格");
41
42
43         //创建输出流
44         FileOutputStream fos = new FileOutputStream("d:\\poi.xlsx");
45         //将内容写到excel文件中
46         wb.write(fos);
47         //关闭流
48         fos.close();
49         fis.close();
50     }
51
52 }

演示效果如下所示:

9:poi操作单元格换行操作:

 1 package com.bie;
 2
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5
 6 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
 7 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
 8 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 9 import org.apache.poi.ss.usermodel.Cell;
10 import org.apache.poi.ss.usermodel.CellStyle;
11 import org.apache.poi.ss.usermodel.IndexedColors;
12 import org.apache.poi.ss.usermodel.Row;
13 import org.apache.poi.ss.usermodel.Sheet;
14 import org.apache.poi.ss.usermodel.Workbook;
15 import org.apache.poi.ss.util.CellRangeAddress;
16
17 /**
18 * @author  Author:别先生
19 * @date Date:2017年9月9日 上午10:14:31
20 *
21 *
22 */
23 public class PoiTest4 {
24
25
26     public static void main(String[] args) throws IOException {
27         //定义一个工作簿
28         Workbook wb =new HSSFWorkbook();
29         //创建第一个sheet页
30         Sheet createSheet = wb.createSheet("第一个sheet");
31         //创建第一行
32         Row createRow = createSheet.createRow(0);
33         //创建单元格
34         Cell createCell = createRow.createCell(2);
35         createCell.setCellValue("我要换行\n are you ok !!!!");
36
37         //设置样式
38         CellStyle cs = wb.createCellStyle();
39         //设置可以换行
40         cs.setWrapText(true);
41         createCell.setCellStyle(cs);
42
43         //调整一下行的高度
44         createRow.setHeightInPoints(2 * createSheet.getDefaultRowHeightInPoints());
45         //调整单元格的宽度
46         createSheet.autoSizeColumn(2);
47
48         //创建输出流
49         FileOutputStream fos = new FileOutputStream("d:\\poi.xlsx");
50         //将内容写到excel文件中
51         wb.write(fos);
52         //关闭流
53         fos.close();
54     }
55
56 }

演示效果如下所示:

时间: 09-15

一脸懵逼学习Java操作Excel之POI(Apache POI)的相关文章

Java 操作 Excel (读取Excel2007,Poi实现)

关于Java读取Excel2007的文章在Google.百度上搜索一下,没有太好的例子,实现的也不算太好.查看了一下Poi,最新的 POI 3.5 beta 4 支持读写 Excel2007和PPT2007(XLSX and PPTX),自己来实现Java读取Excel2007了. 1,下载 POI 3.5 beta 4 解压,把其中的jar包导入项目文件.以我的读取为例,导入了以下jar包.  没有配置 log4j,测试时报告警报信息,应该为加载顺序导致的初始化问题造成(暂时没有找原因). 2

java操作excel(转)poi.jar

import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList;

[Java]Write Excel File Using Apache POI API

package com.file.properties; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Hashtable; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.

[Java]Read Excel File Using Apache POI API

读取以下两种格式的Excel : *.xls  and *.xlsx 用Apache POI API来实现,需要用到 HSSF 和 XSSF 的类库 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) (.xls) file format. XSSF is the POI Project's pure Java implementation of the Excel 2007 OOXML (.xls

[Java]Create Excel File Using Apache POI API

package com.file.properties; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.Has

java 操作excel文档 使用poi

简答你的使用  方便以后使用到时查看 1 package kite.poi; 2 3 import java.awt.Font; 4 import java.io.File; 5 import java.io.FileOutputStream; 6 import java.util.Calendar; 7 import java.util.Date; 8 9 import org.apache.poi.hssf.usermodel.HSSFCell; 10 import org.apache.p

POI 操作Excel 异常org.apache.poi.openxml4j.exceptions.invalidformatexception: package should contain a c

POI 操作Excel 出现如下异常 org.apache.poi.openxml4j.exceptions.invalidformatexception: package should contain a content type part 代码如下 public boolean parseToExcel(String oldFileName,String newFileName){ Map<Object,Object> map = new HashMap<Object,Object&

java 操作 Excel,java导出excel

WritableWorkbook out = null; try { response.getServletResponse().reset(); ((HttpServletResponse) response.getServletResponse()).setHeader("Content-Disposition", "attachment;filename=export.xls"); response.getServletResponse().setConten

java操作Excel

一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象.它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等. 二.HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”.也许HSSF的名字有点