import java.io.*; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class Test { public static void main(String[] args) throws IOException { HSSFWorkbook book = null; File file = new File("D:/test111.xls"); // 会创建file路径的文件,但是不是真的文件,FileInputStream读不出来 FileOutputStream outputStream = new FileOutputStream(file); book = new HSSFWorkbook(); // Excel真的对象通过输出流FileInputStream写入到文件里面,输出流才可以读出来文件 /** * 否则直接指定不存在的D:/test111.xls路径文件,并利用file.createNewFile()或者 * FileOutputStream outputStream = new FileOutputStream(file);创建test111.xls文件 * 但是创建的文件test111.xls利用POIFSFileSystem根据输入流获取时会报错 * FileInputStream inputStream = new FileInputStream(file); * POIFSFileSystem ps = new POIFSFileSystem(inputStream); */ HSSFSheet sheet = book.createSheet("mahaisheet"); HSSFRow titlerow = sheet.createRow(0); for (int i=0;i<10;i++) { HSSFCell cell =titlerow.createCell(i); cell.setCellValue("test"+i); } book.write(outputStream); // 根据输入流获取Excel文件对象,然后在Excel对象里面写数据 FileInputStream inputStream = new FileInputStream(file); POIFSFileSystem ps = new POIFSFileSystem(inputStream); HSSFWorkbook book1 = new HSSFWorkbook(ps); sheet = book1.getSheetAt(0); titlerow = sheet.createRow(1); for (int i=0;i<10;i++) { HSSFCell cell =titlerow.createCell(i); cell.setCellValue("testdown"+i); } // 写完之后根据输出流输出到指定文件路径 outputStream = new FileOutputStream(file); book1.write(outputStream); outputStream.close(); } }
FileOutputStream和FileInputStream的用法
最新推荐文章于 2024-05-16 23:56:19 发布