readdatacs
package com.example.demo.getData;
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;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.*;
import java.io.IOException;
public class readdatacs {
public static int rowNum;
public static int columnNum;
// public static String[] arr;
public static String []arrdata ;public static String []datedata ;
public static int i;public static int j;
public static final String SAMPLE_XLSX_FILE_PATH = "C:/Users/83543/Desktop/data.xlsx";
public static void main(String[] args) throws IOException, InvalidFormatException ,Exception{
createsheet();
}
public static void createsheet() throws IOException, InvalidFormatException,Exception{
Workbook workbook = WorkbookFactory.create(new File(SAMPLE_XLSX_FILE_PATH));
// Getting the Sheet at index zero
Sheet sheet = workbook.getSheetAt(0);
//获取总行数rowNum
rowNum=sheet.getLastRowNum();
//获取一个excel表格中的总记录数
//int rowNum=storagesList.size();
//获取指定列,索引从0开始
//hssfCell=hssfRow.getCell((short)6);
//获取总列数columnNum
Row sheetRow=sheet.getRow(1);
columnNum=sheetRow.getPhysicalNumberOfCells();
System.out.println(rowNum+"??"+columnNum);
i=0;j=0;
sheet.forEach(row -> {
row.forEach(cell -> { //对每个元素都进行输出操作
printCellValue(cell,i);
i++;j++;
if(j==6){
i-=6;
}
});
System.out.println();
});
// Closing the workbook
workbook.close();
}
public static void printCellValue(Cell cell,int i) {
arrdata=new String[(rowNum*columnNum)];
datedata=new String[(rowNum)];
// i-=6;//减去第一行表头增加的6个
switch (cell.getCellTypeEnum()) {
case BOOLEAN:
System.out.print(cell.getBooleanCellValue());
break;
case STRING: //输出了表名+第一列
arrdata[i]=cell.getRichStringCellValue().getString();
System.out.print(cell.getRichStringCellValue().getString());
System.out.print(i);
break;
case NUMERIC://如果是数值型
if (DateUtil.isCellDateFormatted(cell)) {
System.out.print(cell.getDateCellValue());
} else {
//循环拿到数据,都放在一个里面,到时候循环拿,以6为单位,转化为字符串型
arrdata[i]=String.valueOf(cell.getNumericCellValue());
System.out.print(cell.getNumericCellValue());
System.out.print(i);
}
break;
case FORMULA:
System.out.print(cell.getCellFormula());
break;
case BLANK:
System.out.print("");
break;
default:
System.out.print("");
}
System.out.print("\t");
}
}