java解析Excel存储-对单元格内容判断

该博客介绍如何使用Java的Apache POI库来创建、读取和操作Excel文件,包括设置单元格类型、内容和编码,以及判断单元格是否为空。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
 
package testexcel;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import org.apache.poi.hssf.usermodel.HSSFComment;
public class CreateXL {
    public static String xlsFile = "test.xls"; //产生的Excel文件的名称
    public static void main(String args[]) {
        try {
            HSSFWorkbook workbook = new HSSFWorkbook(); //产生工作簿对象
            HSSFSheet sheet = workbook.createSheet(); //产生工作表对象
//设置第一个工作表的名称为firstSheet
//为了工作表能支持中文,设置字符编码为UTF_16
            workbook.setSheetName(0, "firstSheet", HSSFWorkbook.ENCODING_UTF_16);
//产生一行
            HSSFRow row = sheet.createRow((short) 0);
//产生第一个单元格
            HSSFCell cell = row.createCell((short) 0);
//设置单元格内容为字符串型
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//为了能在单元格中写入中文,设置字符编码为UTF_16。
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//往第一个单元格中写入信息
            cell.setCellValue("测试成功");
            FileOutputStream fOut = new FileOutputStream(xlsFile);
            workbook.write(fOut);
            fOut.flush();
            fOut.close();
            System.out.println("文件生成...");
//以下语句读取生成的Excel文件内容
            xlsFile = "testdata.xls";
            FileInputStream fIn = new FileInputStream(xlsFile);
            HSSFWorkbook readWorkBook = new HSSFWorkbook(fIn);
//            HSSFSheet readSheet = readWorkBook.getSheet("firstSheet");
             HSSFSheet readSheet = readWorkBook.getSheetAt(0);
            //HSSFRow readRow = readSheet.getRow(0);
                System.out.println(readSheet.getPhysicalNumberOfRows());
                System.out.println(readSheet.getDefaultColumnWidth());
            int maxrow = readSheet.getPhysicalNumberOfRows();
            int col = readSheet.getDefaultColumnWidth();
            for(int i = 0 ; i < maxrow ; i++){
                  HSSFRow readRow = readSheet.getRow(i); 
                
                  for(int j = 0 ; j < col-2 ; j ++){
                     HSSFCell readCell = readRow.getCell((short) j);
                   System.out.println(readRow.getCell((short) j).getCellType());
                   if(readRow.getCell((short) j).getCellType()==HSSFCell.CELL_TYPE_BLANK){
                       System.out.print("空格");
                   }else{
                            System.out.print(readCell.toString());
                   }
              
                }
                 System.out.println();
            }
            HSSFRow readRow = readSheet.getRow(0);
            //System.out.println(readRow.getRowNum());
            HSSFCell readCell = readRow.getCell((short) 0);
            System.out.println("CELL_TYPE_STRING" + HSSFCell.CELL_TYPE_STRING);
            System.out.println("CELL_TYPE_BLANK" + HSSFCell.CELL_TYPE_BLANK);
            System.out.println("CELL_TYPE_BOOLEAN" + HSSFCell.CELL_TYPE_BOOLEAN);
            System.out.println("CELL_TYPE_ERROR" + HSSFCell.CELL_TYPE_ERROR);
            System.out.println("CELL_TYPE_FORMULA" + HSSFCell.CELL_TYPE_FORMULA);
            System.out.println("CELL_TYPE_NUMERIC" + HSSFCell.CELL_TYPE_NUMERIC);
            System.out.println("ENCODING_UTF_16" + HSSFCell.ENCODING_UTF_16);
              System.out.println("ENCODING_UNCHANGED" + HSSFCell.ENCODING_UNCHANGED);
            System.out.println("第一个单元是:" + readCell.getStringCellValue());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
 



独有“帐号保险柜”,保护网银网游密码, 瑞星2008版免费  
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值