EXCEL数据读取解析多个sheet
;
.*;
lFormat;
DateFormat;
ist;
;
;
;
teUtil;
ll;
w;
eet;
rkbook;
publicclassExcelOperate{
publicstaticvoidmain(String[]args)throwsException{
//Filefile=newFile("");
//Filefile=newFile("");
//getSheetData(file);
Filefile=newFile("");
String[][]result=getData(file,1);
introwLength=;
/*写⼊Txt⽂件*/
Filewritename=newFile("E:");//相对路径,如果没有则要建⽴⼀个新的output。txt⽂件
NewFile();//创建新⽂件
BufferedWriterout=newBufferedWriter(newFileWriter(writename));
for(inti=0;i<61;i++){
//for(intj=0;j<7;j++){
///(result[i][j]+"tt");
(
"UPDATESETFULL_NAME_='"+result[i][2]+"',DESC_='"+result[i][3]+"',='"+result[i][5]+"',='"+result[i][6]+"'n"+
"WHERENAME_='"+result[i][1]+"';"+
"rn");//rn即为换⾏
//}
n();
}
/*for(inti=0;i
for(intj=0;j
(result[i][j]+"tt");
(result[i][j]+"rn");//rn即为换⾏
}
n();
}*/
();//把缓存区内容压⼊⽂件
();//最后记得关闭⽂件
}
staticvoidgetSheetData(Filefile)throwsIOException{
FileInputStreaminp=newFileInputStream(file);
XSSFWorkbookwb=newXSSFWorkbook(inp);
XSSFSheetsheet=etAt(3);//获得第三个⼯作薄(2008⼯作薄)
//填充上⾯的表格,数据需要从数据库查询
//HSSFRowrow5=(4);//获得⼯作薄的第五⾏
//HSSFCellcell54=l(3);//获得第五⾏的第四个单元格
//lValue("测试纳税⼈名称");//给单元格赋值
//获得总列数
intcoloumNum=(0).getPhysicalNumberOfCells();
introwNum=tRowNum();//获得总⾏数
n(coloumNum);
n(rowNum);
n(etName());
intcellCount=0;
for(inti=0;i
XSSFRowrow=(i);
if(row!=null){//row该⾏所有单元格为空时,row是null值2017-01-05pelin
n(i+"索引⾏getPhysicalNumberOfCells:"+sicalNumberOfCells());
n(i+"索引⾏getLastCellNum:"+row);
}
}
n(cellCount);
}
/**
*读取Excel的内容,第⼀维数组存储的是⼀⾏中格列的值,⼆维数组存储的是多少个⾏
*@paramfile读取数据的源Excel
*@paramignoreRows读取数据忽略的⾏数,⽐喻⾏头不需要读⼊忽略的⾏数为1
*@return读出的Excel中数据的内容
*@throwsFileNotFoundException
*@throwsIOException
*/
publicstaticString[][]getData(Filefile,intignoreRows)
throwsFileNotFoundException,IOException{
List
introwSize=0;
BufferedInputStreamin=newBufferedInputStream(newFileInputStream(
file));
//打开HSSFWorkbook
FileInputStreaminp=newFileInputStream(file);
XSSFWorkbookwb=newXSSFWorkbook(inp);
//XSSFSheetsheet=etAt(3);
XSSFCellcell=null;
for(intsheetIndex=0;sheetIndex
XSSFSheetst=etAt(sheetIndex);
if(etName().equals("GEE1.0ECUMasterList")){
//第⼀⾏为标题,不取
for(introwIndex=ignoreRows;rowIndex<=tRowNum();rowIndex++){
XSSFRowrow=(rowIndex);
if(row==null){
continue;
}
inttempRowSize=tCellNum()+1;
if(tempRowSize>rowSize){
rowSize=tempRowSize;
}
String[]values=newString[rowSize];
(values,"");
booleanhasValue=fal;
for(shortcolumnIndex=0;columnIndex<=tCellNum();columnIndex++){
Stringvalue="";
cell=l(columnIndex);
if(cell!=null){
//注意:⼀定要设成这个,否则可能会出现乱码
//oding(NG_UTF_16);
switch(lType()){
caSTRING:
value=ingCellValue();
break;
caNUMERIC:
if(DateFormatted(cell)){
Datedate=eCellValue();
if(date!=null){
value=newSimpleDateFormat("yyyy-MM-dd")
.format(date);
}el{
value="";
}
}el{
value=newDecimalFormat("0").format(cell
.getNumericCellValue());
}
break;
caFORMULA:
//导⼊时如果为公式⽣成的数据则⽆值
if(!ingCellValue().equals("")){
value=ingCellValue();
}el{
value=ericCellValue()+"";
}
break;
caBLANK:
break;
caERROR:
value="";
break;
caBOOLEAN:
value=(leanCellValue()==true?"Y"
:"N");
break;
default:
value="";
}
}
if(columnIndex==0&&().equals("")){
break;
}
values[columnIndex]=rightTrim(value);
hasValue=true;
}
if(hasValue){
(values);
}
}
}
}
();
String[][]returnArray=newString[()][rowSize];
for(inti=0;i<;i++){
returnArray[i]=(String[])(i);
}
returnreturnArray;
}
/**
*去掉字符串右边的空格
*@paramstr要处理的字符串
*@return处理后的字符串
*/
publicstaticStringrightTrim(Stringstr){
if(str==null){
return"";
}
intlength=();
for(inti=length-1;i>=0;i--){
if((i)!=0x20){
break;
}
length--;
}
ing(0,length);
}
}
本文发布于:2022-12-09 09:33:34,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/71687.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |