xssf_xssfworkbook - CSDN
精华内容
参与话题
  • XSSF安全工具

    2020-07-17 17:53:44
    Cross-Site Scripting Framework (XSSF)是一款安全工具,使用它可以非常容易的利用跨站脚本(XSS)漏洞。XSSF项目的主要目的是展示XSS的实际危害。
  • Apache POI HSSF,XSSF和SXSSF的区别

    千次阅读 2014-10-11 10:16:36
    XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现  从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的API----SXSSF  SXSSF通过一个滑动窗口来限制访问Row的数量从而达到低内存占用的目录,...

    HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现 

    XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现 

    从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的API----SXSSF 

    SXSSF通过一个滑动窗口来限制访问Row的数量从而达到低内存占用的目录,XSSF可以访问所有行。旧的行数据不再出现在滑动窗口中并变得无法访问,与此同时写到磁盘上。 
    在自动刷新的模式下,可以指定窗口中访问Row的数量,从而在内存中保持一定数量的Row。当达到这一数量时,在窗口中产生新的Row数据,并将低索引的数据从窗口中移动到磁盘中。 
    或者,滑动窗口的行数可以设定成自动增长的。它可以根据需要周期的根据一次明确的flushRow(int keepRows)调用来进行修改。 

    注意:针对 SXSSF Beta 3.8下,会有临时文件产生,比如: 
    poi-sxssf-sheet4654655121378979321.xml 
    文件位置:java.io.tmpdir这个环境变量下的位置 
    Windows 7下是C:\Users\xxxxxAppData\Local\Temp 
    Linux下是 /var/tmp/ 
    要根据实际情况,看是否删除这些临时文件
     

    官方也提供了一些解决方式: 
    https://issues.apache.org/bugzilla/show_bug.cgi?id=53493 

    与XSSF的对比 
    在一个时间点上,只可以访问一定数量的数据 
    不再支持Sheet.clone() 
    不再支持公式的求值 

    特性汇总 
     
    展开全文
  • XSSF解析

    2017-03-07 14:23:03
    public class TestExcel {  static Log log = LogFactory.getLog(TestExcel.class);  private final static int httpPort = 8087;    @Autowired ... PhoneMatchCodeService phoneMatchCodeServic...

    public class TestExcel {

        static Log log = LogFactory.getLog(TestExcel.class);

        private final static int httpPort = 8087;

        

        @Autowired

        PhoneMatchCodeService phoneMatchCodeService;

     

        // 获取Excel文档的路径

        public static String filePath = "E://phoneMatchCode//phoneMatchCode.xlsx";

     

        private String saveData() {

            try {

                // 创建对Excel工作簿文件的引用

                Workbook wookbook = null;

    //            OPCPackage pkg = OPCPackage.open(path);

                wookbook = new XSSFWorkbook(new FileInputStream(filePath));

                // HSSFWorkbook wookbook = new HSSFWorkbook(new

                // FileInputStream(filePath));

                // 在Excel文档中,第一张工作表的缺省索引是0

                // 其语句为: HSSFSheet sheet = workbook.getSheetAt(0);

                Sheet sheet = wookbook.getSheet("Sheet1");

                // HSSFSheet sheet = wookbook.getSheet("Sheet1");

                // 获取到Excel文件中的所有行数

                int rows = sheet.getPhysicalNumberOfRows();

                // 遍历行

     

                PhoneMatchCode phoneMatchCode = new PhoneMatchCode();

                for (int i = 1; i < rows; i++) {

                    // 读取左上端单元格

                    Row row = sheet.getRow(i);

                    // 行不为空

                    if (row != null) {

                        // 获取到Excel文件中的所有的列

                        int cells = row.getPhysicalNumberOfCells();

                        String value = ""; // 遍历列

     

                        row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);

                        phoneMatchCode.setCode(row.getCell(0).getStringCellValue());

     

                        row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);

                        phoneMatchCode.setMatchCode(row.getCell(1).getStringCellValue());

     

                        row.getCell(2).setCellType(Cell.CELL_TYPE_STRING);

                        phoneMatchCode.setProvince(row.getCell(2).getStringCellValue());

     

                        row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);

                        phoneMatchCode.setCity(row.getCell(3).getStringCellValue());

     

                        System.out.println(phoneMatchCode.getCity());

                        phoneMatchCodeService.add(phoneMatchCode);

                    }

                }

                return "ok";

            } catch (Exception e) {

                log.error("excell 解析失败", e);

                return "error";

            }

        }

    }

    展开全文
  • POI中的HSSF和XSSF

    千次阅读 2018-08-08 15:49:05
    HSSF是指2007年以前的,XSSF是指2007年版本以上的 这个还是比较好用的,这些总结来自Apache的官方向导的点点滴滴 还有好多没有没有写的,详细的请参考http://poi.apache.org/spreadsheet/quick-guide.html Java代码 ...

    HSSF是指2007年以前的,XSSF是指2007年版本以上的
    这个还是比较好用的,这些总结来自Apache的官方向导的点点滴滴
    还有好多没有没有写的,详细的请参考http://poi.apache.org/spreadsheet/quick-guide.html

    Java代码

    public class SummaryHSSF {
    
    public static void main(String[] args) throws IOException {
       //创建Workbook对象(这一个对象代表着对应的一个Excel文件)
                         //HSSFWorkbook表示以xls为后缀名的文件
       Workbook wb = new HSSFWorkbook();
       //获得CreationHelper对象,这个应该是一个帮助类
       CreationHelper helper = wb.getCreationHelper();
       //创建Sheet并给名字(表示Excel的一个Sheet)
       Sheet sheet1 = wb.createSheet("HSSF_Sheet_1");  
       Sheet sheet2 = wb.createSheet("HSSF_Sheet_2");
       //Row表示一行Cell表示一列
       Row row = null;
       Cell cell = null;
       for(int i=0;i<60;i=i+2){
        //获得这个sheet的第i行
        row = sheet1.createRow(i);
        //设置行长度自动   
        //row.setHeight((short)500);
        row.setHeightInPoints(20);
        //row.setZeroHeight(true);
        for(int j=0;j<25;j++){  
         //设置每个sheet每一行的宽度,自动,根据需求自行确定
         sheet1.autoSizeColumn(j+1, true);
         //创建一个基本的样式
         CellStyle cellStyle = SummaryHSSF.createStyleCell(wb);
         //获得这一行的每j列
         cell = row.createCell(j);
         if(j==0){
          //设置文字在单元格里面的位置
          cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
          //先创建字体样式,并把这个样式加到单元格的字体里面
          cellStyle.setFont(createFonts(wb));
          //把这个样式加到单元格里面
          cell.setCellStyle(cellStyle);     
          //给单元格设值
          cell.setCellValue(true);
         }else if(j==1){
          //设置文字在单元格里面的位置
          cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
          //设置这个样式的格式(Format)
          cellStyle = SummaryHSSF.setCellFormat(helper,cellStyle, "#,##0.0000");     
          //先创建字体样式,并把这个样式加到单元格的字体里面
          cellStyle.setFont(createFonts(wb));
          //把这个样式加到单元格里面
          cell.setCellStyle(cellStyle);
          //给单元格设值
          cell.setCellValue(new Double(2008.2008));
         }else if(j==2){
          cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);     
          cellStyle.setFont(createFonts(wb));
          cell.setCellStyle(cellStyle);
          cell.setCellValue(helper.createRichTextString("RichString"+i+j));     
         }else if(j==3){
          cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
          cellStyle = SummaryHSSF.setCellFormat(helper,cellStyle, "MM-yyyy-dd");


      

    展开全文
  • XSSFWorkbook、XSSFSheet对xlsx和xls都支持 public class ExcelUtil { private Map<String,Integer> map; //工作簿 private XSSFWorkbook xssfWorkbook = null; ...private XSSFSheet xssfSheet = null;...

    XSSFWorkbook、XSSFSheet对xlsx和xls都支持

    public class ExcelUtil {

    private Map<String,Integer> map;
    
    //工作簿
    private XSSFWorkbook xssfWorkbook = null;
    
    //工作表
    private XSSFSheet xssfSheet = null;
    
    public ExcelUtil(){
    
    }
    
    //获取工作簿和工作表
    public ExcelUtil(InputStream inputStream, String sheetName){
        try {
            xssfWorkbook = new XSSFWorkbook(inputStream);
            xssfSheet = xssfWorkbook.getSheet(sheetName);
        } catch (IOException e) {
            e.printStackTrace();
        }
    
    }
    
    //test
    public void readFirstRowFirstCell(){
        XSSFRow row = xssfSheet.getRow(0);
        String str = row.getCell(2).toString().substring(0,9);
        System.out.println(str);
    }
    
    
    //有不及格科目学生 返回不及格学生人数
    public int findFailStudent(int majorIDColumn,int scoreColumn,int nameColumn,String majorID){
        //存储有不及格科目学生的名字和不及格门数
        map = new HashMap<>();
        float score;
        String rowMajorID;
    
        int rows = xssfSheet.getPhysicalNumberOfRows();
        for(int i=0;i<rows;i++){
            XSSFRow row = xssfSheet.getRow(i);
    
            //班级号
            String cell = row.getCell(majorIDColumn).toString();
            //获得专业号
            if(cell.length() == 10)
                rowMajorID = cell.substring(0,9);
            else continue;
            if(rowMajorID.equals(majorID)){
                //获得姓名
                String name = row.getCell(nameColumn).toString();
                //获得成绩
                String scoreStr = row.getCell(scoreColumn).toString() ;
                //匹配非负数
                if(scoreStr.matches("\\d+|(\\d+\\.\\d+)")) {
                    score = Float.parseFloat(scoreStr);
                    if(score < 60){
                        addFailStudent(map,name);
                    }
                }
                else {
                    if(scoreStr.equals("不及格"))
                        addFailStudent(map,name);
                }
            }else continue;
        }
    
        for(String key : map.keySet()){
            System.out.println("姓名:"+key+" 不及格门数:"+map.get(key));
        }
        System.out.println("两门及以上不及格人数:"+moreThan2FailSubject(map));
        return map.size();
    }
    
    //添加不及格学生
    public void addFailStudent(Map<String,Integer> map,String name){
        if(!map.containsKey(name)){
            map.put(name,1);
        }else {
            int subjects = map.get(name);
            map.put(name,subjects+1);
        }
    }
    
    //返回两门及以上不及格人数
    public int moreThan2FailSubject(Map<String,Integer> map){
        int count = 0;
        for(String key : map.keySet()){
            if(map.get(key) >= 2){
                count++;
            }
        }
        return count;
    }
    
    //输出绩点满足但有不及格科目的同学名字(绩点满足的同学已经准备好)
    public int pointButFailSubject(Set<String> set){
        System.out.println("======================\n绩点满足但有不及格科目的同学名字:");
        int count = 0;
        for(String name : map.keySet()){
            if(set.contains(name)){
                count++;
                System.out.println(name);
            }
        }
        return count;
    }
    
    public void sportScore(int course, int scoreColumn,int nameColumn, Set<String> names){
        System.out.println("====================");
        //存储同学们的体育成绩
        map = new HashMap<>();
        int score;
        int rows = xssfSheet.getPhysicalNumberOfRows();
        for(int i=0;i<rows;i++){
            XSSFRow row = xssfSheet.getRow(i);
            //体育成绩
            String sportSco = row.getCell(scoreColumn).toString();
            if(sportSco.matches("\\d+|(\\d+\\.\\d+)")){//85.0
                float tmp = Float.parseFloat(sportSco);
                score = (int) tmp;
            }
            else continue;
            //姓名
            String name = row.getCell(nameColumn).toString();
            //课程名
            String couName = row.getCell(course).toString();
            if(couName.length() > 2)
                couName = couName.substring(0,2);
            if(names.contains(name) && couName.equals("体育")){
                map.put(name,score);
            }
        }
        for(String key : map.keySet()){
            System.out.println("姓名:"+key+" 体育成绩:"+map.get(key));
        }
        names.removeAll(map.keySet());
        System.out.println("剩下的同学没有体育成绩:");
        for(String name : names){
            System.out.print(name+" ");
        }
    }
    

    }

    展开全文
  • POI-XSSF SXSSF 官方文档的说法: HSSF是POI项目的Excel '97(-2007)文件格式的纯Java实现。XSSF是POI Project的Excel 2007 OOXML(.xlsx)文件格式的纯Java实现。 自3.8-beta3以来,POI提供了基于XSSF构建的低...
  • xssf 使用

    2019-01-21 20:09:19
    https://davidxiaozhi.iteye.com/blog/892301
  • POI操作Excel详解,HSSF和XSSF两种方式

    千次阅读 2018-11-02 17:57:35
    HSSF方式: package ... import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream;...import java.io.IOException;...import java.text.ParseExcep...
  • POI XSSF与HSSF的 使用区别

    万次阅读 2017-04-27 16:32:50
    首次写博客,希望能坚持下去,一点一滴的积累,内容不多也不深,但愿我的分享,能帮助和我一样的新人们解决问题   最近给项目中添加了一个导入excel表格的功能,然而在功能开发结束后测试,发现报错。...
  • 我的是没有把相关包放到lib当中,所以报错
  • HSSF,XSSF和SXSSF的区别

    千次阅读 2014-10-16 23:00:57
    HSSF,XSSF和SXSSF的区别     HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现 XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现 从POI 3.8版本开始,提供了一种基于XSSF的低内存...
  • kali2.0 metasploit安装xssf模块

    千次阅读 2017-06-20 19:18:57
    在文章中说的/opt/目录下msf的主目录根本不存在,就更别提安装xssf了。 下载xssf3.0压缩包的地址https://code.google.com/archive/p/xssf/downloads 推荐一个youtube视频,详细介绍kali2.0如何安装xssf模块(需翻墙...
  • 出现这样的错,我是将poi的版本更新到最新解决的 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>.../dependency...
  • poi XSSFWorkbook实现excel中的下拉框

    千次阅读 2015-08-25 18:20:40
    package … import java.io.FileOutputStream;import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.xssf.usermodel.XSSFDataValidation;...import org.apache.poi.xssf.usermodel.XSSFDataVa
  • POI读写数据 兼容HSSF和XSSF

    千次阅读 2014-03-04 04:48:59
    try {//WorkbookFactory兼容HSSF(2003)和XSSF(2007) Workbook wb = WorkbookFactory.create(new FileInputStream(new File("D:\\测试.xlsx"))); Sheet sheet = wb.getSheetAt(0); Row row = sheet
  • 最近需要做的功能用到了poi的颜色,但是网上都是hssf格式的,而xssf中用到的颜色都是一个short类型的数字,不知道什么数字对应什么颜色,于是写了个程序查看数字对应颜色。 1、直接上代码 public static void ...
  • 处理excel文件一般使用poi,而使用maven引入poi的jar包如下: &amp;amp;lt;!-- https://mvnrepository.com/artifact/org.apache.poi/poi --&amp;amp;gt; &amp;amp;lt;dependency&.../groupI
  • HSSF instead of XSSF

    2019-04-18 17:32:16
    org.apache.poi.openxml4j.exceptions.OLE2NotOfficeXmlFileException: The supplied data appears to be in the OLE2 Format. You are calling the part of POI that deals with OOXML (Office Open XML) Documents...
  • 使用最新的POI3.11时,在运行 Workbook workBook = new XSSFWorkbook ();这段代码时出现错误: java.lang.NoSuchMethodError: javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;...
  • java导出Excel使用的XSSF

    2017-11-27 10:32:37
    java导出Excel怎么设置样式使用的是XSSF // 声明一个工作薄 XSSFWorkbook workbook = new XSSFWorkbook(); // 生成一个表格 XSSFSheet sheet = workbook.createSheet(fileName); // 设置表格默认列宽度...
1 2 3 4 5 ... 20
收藏数 9,331
精华内容 3,732
关键字:

xssf