JAVA生成Excel文件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何利用JAVA生成 Excel文件
Java学习小组:吴楠楠
使用Jakarta的POI项目操作Excel文 件
Jakarta的POI项目提供了一组操纵Windows 文档的Java API,如下几个类提供了操作 Excel文件的方便的途径:HSSFWorkbook、 HSSFSheet、HSSFRow、HSSFCell,分别代 表了Excel电子表格中的Book、Sheet、行和 单元格
按照六所处理的“源”的不同,可以分 “节点流”和“处理流” 1、节点流(低级流) 面向特定的IO设备(如磁盘或网络)读 /写数据的流 2、处理流(高级流) 处理流的流,实现对一个已经存在的流 的连接和封装,通过所封装的流的功能 调用实现数据读/写的功能
InputStream/ OutputStream(处理字节数据) 输入流 InputStream(低级流)FileInputStream InputStream (低级流) FilterInputStream DataInputStream(高级流) 输出流 OutputStream (低级流) FileOutputStream OutputStream (低级流) FilterOutputStream DataOutputStream (高级流) 读/写流的方式都是以字节为单位进行的
设定单元格的值
cell.setCellValue("Hello! Thiswnn test"); 值的类型参数有多中double ,String ,boolean, row.createCell((short)1).setCellValue(1.2); row.createCell((short)2).setCellValue(“Cell"); row.createCell((short)3).setCellValue(true);
new sheet :所创建的sheet页的名字
创建行
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(“new sheet”);
//注意以下的代码很多方法的参数是short 而不是 int 所以需要做一次类型转换 //sheet 创建一行 HSSFRow row = sheet.createRow((short)0);
System.out.println(cell); String src
= "单元格";
// 在所取得单元格中书写内容 cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(src); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("d:\\ww.xls"); wb.write(fileOut); fileOut.close(); } }
java流
I/O流概述 Java.io包中定义了多个流类型来实现输入/ 输出功能 处理字节流的两个基础的类是InputStream和 /OutputStream(处理8位字节流) 处理字符流的两个基础的类是Reader和 Writer(处理16为字节流) 所有其他的流都是一这四个类为基础
public class AppendFile { public static void main(String[] args) throws FileNotFoundException, IOException { POIFSFileSystem fs =new POIFSFileSystem(new FileInputStream("d:\\test.xls")); // 创建一个新的Excel HSSFWorkbook wb = new HSSFWorkbook(fs); // 在所创建的Excel中新建一个sheet页 HSSFSheet sheet = wb.getSheetAt(0); // 取该sheet页的第13行 HSSFRow row = sheet.getRow(12); // 第8列的单元格 HSSFCell cell = row.getCell((short)7);
一个生成Excel的实例
public class creatFile { static public void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("d:\\creatFile.xls"); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet s = wb.createSheet(); wb.setSheetName(0, "first sheet"); HSSFRow row = s.createRow(0); HSSFCell cell = row.createCell((short)0); cell.setCellValue("Hello! This message is generated from POI."); wb.write(fos); fos.close(); } }
使用完流以后必须执行的方法 void close() 用于关闭这个流在使用完流以后,一定要 记得使用该方法将流关闭,释放流所占用 的资源。
流的连接的基本原则是: 高级流域低级流打交道,低级流与I/O 设备、文件打交道,高级流与低级流可以 互相交流。 通过流的连接,可以降低层对设备的流 的操作向程序员隐藏,而程序员只需要关 心上层流的操作。
流的分类
按照流的走向分为输入流和输出流 输入流: InputStream(处理字节流) Reader(处理字符流) 所有由InputStream或Reader派生出来的类都有一个 基本的read()方法,用于读取单一的字节或字节数组。 输出流: OutputStream(处理字节流) Writer(处理字符流) 所有由OutputStream或Writer派生出来的类都有一 个基本的write()方法,用于写入单一的字节或字节 数组。
POI对象名称所对应的Excel对象
HSSFWorkbook HSSFSheet HSSFRow HSSFCell
Baidu Nhomakorabea
工作簿 工作表 行 单元格
创建一个workbook
创建workbook HSSFWorkbook wb = new HSSFWorkbook();
创建一个sheet
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet1 = wb.createSheet(“new sheet”);
创建cells(单元格)
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); HSSFRow row = sheet.createRow((short)0); //行创建一个单元格 HSSFCell cell = row.createCell((short)0);
Reader/Writer(处理字符类型的数据的流)
用于读取一个字符文件的类 Reader(基类)InputStreamReader (高级流) FileReader (高级流) Writer(基类) OutputStreamReader (高级流) FileReader (高级流)
用于读取数据源是一个字符串的流 Reader(基类)StringReader (低级流) Writer(基类) StringWriter (低级流)
Java学习小组:吴楠楠
使用Jakarta的POI项目操作Excel文 件
Jakarta的POI项目提供了一组操纵Windows 文档的Java API,如下几个类提供了操作 Excel文件的方便的途径:HSSFWorkbook、 HSSFSheet、HSSFRow、HSSFCell,分别代 表了Excel电子表格中的Book、Sheet、行和 单元格
按照六所处理的“源”的不同,可以分 “节点流”和“处理流” 1、节点流(低级流) 面向特定的IO设备(如磁盘或网络)读 /写数据的流 2、处理流(高级流) 处理流的流,实现对一个已经存在的流 的连接和封装,通过所封装的流的功能 调用实现数据读/写的功能
InputStream/ OutputStream(处理字节数据) 输入流 InputStream(低级流)FileInputStream InputStream (低级流) FilterInputStream DataInputStream(高级流) 输出流 OutputStream (低级流) FileOutputStream OutputStream (低级流) FilterOutputStream DataOutputStream (高级流) 读/写流的方式都是以字节为单位进行的
设定单元格的值
cell.setCellValue("Hello! Thiswnn test"); 值的类型参数有多中double ,String ,boolean, row.createCell((short)1).setCellValue(1.2); row.createCell((short)2).setCellValue(“Cell"); row.createCell((short)3).setCellValue(true);
new sheet :所创建的sheet页的名字
创建行
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(“new sheet”);
//注意以下的代码很多方法的参数是short 而不是 int 所以需要做一次类型转换 //sheet 创建一行 HSSFRow row = sheet.createRow((short)0);
System.out.println(cell); String src
= "单元格";
// 在所取得单元格中书写内容 cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(src); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("d:\\ww.xls"); wb.write(fileOut); fileOut.close(); } }
java流
I/O流概述 Java.io包中定义了多个流类型来实现输入/ 输出功能 处理字节流的两个基础的类是InputStream和 /OutputStream(处理8位字节流) 处理字符流的两个基础的类是Reader和 Writer(处理16为字节流) 所有其他的流都是一这四个类为基础
public class AppendFile { public static void main(String[] args) throws FileNotFoundException, IOException { POIFSFileSystem fs =new POIFSFileSystem(new FileInputStream("d:\\test.xls")); // 创建一个新的Excel HSSFWorkbook wb = new HSSFWorkbook(fs); // 在所创建的Excel中新建一个sheet页 HSSFSheet sheet = wb.getSheetAt(0); // 取该sheet页的第13行 HSSFRow row = sheet.getRow(12); // 第8列的单元格 HSSFCell cell = row.getCell((short)7);
一个生成Excel的实例
public class creatFile { static public void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("d:\\creatFile.xls"); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet s = wb.createSheet(); wb.setSheetName(0, "first sheet"); HSSFRow row = s.createRow(0); HSSFCell cell = row.createCell((short)0); cell.setCellValue("Hello! This message is generated from POI."); wb.write(fos); fos.close(); } }
使用完流以后必须执行的方法 void close() 用于关闭这个流在使用完流以后,一定要 记得使用该方法将流关闭,释放流所占用 的资源。
流的连接的基本原则是: 高级流域低级流打交道,低级流与I/O 设备、文件打交道,高级流与低级流可以 互相交流。 通过流的连接,可以降低层对设备的流 的操作向程序员隐藏,而程序员只需要关 心上层流的操作。
流的分类
按照流的走向分为输入流和输出流 输入流: InputStream(处理字节流) Reader(处理字符流) 所有由InputStream或Reader派生出来的类都有一个 基本的read()方法,用于读取单一的字节或字节数组。 输出流: OutputStream(处理字节流) Writer(处理字符流) 所有由OutputStream或Writer派生出来的类都有一 个基本的write()方法,用于写入单一的字节或字节 数组。
POI对象名称所对应的Excel对象
HSSFWorkbook HSSFSheet HSSFRow HSSFCell
Baidu Nhomakorabea
工作簿 工作表 行 单元格
创建一个workbook
创建workbook HSSFWorkbook wb = new HSSFWorkbook();
创建一个sheet
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet1 = wb.createSheet(“new sheet”);
创建cells(单元格)
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); HSSFRow row = sheet.createRow((short)0); //行创建一个单元格 HSSFCell cell = row.createCell((short)0);
Reader/Writer(处理字符类型的数据的流)
用于读取一个字符文件的类 Reader(基类)InputStreamReader (高级流) FileReader (高级流) Writer(基类) OutputStreamReader (高级流) FileReader (高级流)
用于读取数据源是一个字符串的流 Reader(基类)StringReader (低级流) Writer(基类) StringWriter (低级流)