excel 테이블 정보 요약, ExcelHandler
ExcelHandler 클래스는 다음과 같습니다.
/*
@author wesleydeng 2011-9-6
*/
package POI;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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 ExcelHandler
{
File file;
HSSFWorkbook workbook;
HSSFSheet sheet;
public ExcelHandler(File file, int sheetIndex)//
{
super();
this.file=file;
try
{
POIFSFileSystem inFS=new POIFSFileSystem(new FileInputStream(file));
workbook = new HSSFWorkbook(inFS);
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
System.out.println(file.getName());
e.printStackTrace();
}
sheet = workbook.getSheetAt(sheetIndex);
}
public String getStringValue(int rowIndex,int colIndex)
{
HSSFRow myRow=sheet.getRow(rowIndex);
if(myRow==null)
{
throw new IllegalArgumentException("cells("+rowIndex+","+colIndex+") not exist!");
}
HSSFCell myCell=myRow.getCell(colIndex);
if(myCell==null)
{
throw new IllegalArgumentException("cells("+rowIndex+","+colIndex+") not exist!");
}
return myCell.getStringCellValue();
}
public void setStringValue(int rowIndex,int colIndex,String value)
{
HSSFRow myRow=sheet.getRow(rowIndex);
if(myRow==null)
{
myRow=sheet.createRow(rowIndex);
}
HSSFCell myCell=myRow.getCell(colIndex);
if(myCell==null)
{
myCell=myRow.createCell(colIndex);
}
myCell.setCellValue(value);
}
public int getColLength(int rowIndex)
{
HSSFRow myRow=sheet.getRow(rowIndex);
if(myRow==null)
{
throw new IllegalArgumentException("row:"+rowIndex+" not exist!");
}
return (int)sheet.getRow(rowIndex).getLastCellNum();
}
public void saveAndClose()
{
try
{
FileOutputStream outFile = new FileOutputStream(file);
workbook.write(outFile);
outFile.close();
} catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static public File createNewFile(String fileFullPath, String sheetName)
{
//create file
File file=new File(fileFullPath);
try
{
file.createNewFile();
} catch (IOException e1)
{
System.out.println("new file"+fileFullPath+"create Error");
}
//connect to file
FileOutputStream outStream=null;
try
{
outStream = new FileOutputStream(fileFullPath);
} catch (FileNotFoundException e)
{
System.out.println(fileFullPath+"not found");
}
//write new Excelfile to file
try
{
HSSFWorkbook myWorkbook=new HSSFWorkbook();
myWorkbook.createSheet(sheetName);
myWorkbook.write(outStream);
} catch (IOException e)
{
System.out.println(fileFullPath+"write failed");
}
return file;
}
}
이 ExcelHandler를 사용하는 것은 InfoCollector입니다.
/*
@author wesleydeng 2011-9-5
*/
package POI;
import java.io.File;
public class InfoCollector
{
public static void main(String[] args)
{
File folder=new File("C:\\Documents and Settings\\wesley\\ \\08 ");
File[] excelFiles=folder.listFiles();
ExcelHandler inExcelFile=null;
File outfile=ExcelHandler.createNewFile(folder.getParent()+"\\ .xls", "sheet1");
ExcelHandler outExcelFile=new ExcelHandler(outfile,0);
String tempValue;
//do loop to traverse each files
for (int fileIndex = 0; fileIndex < excelFiles.length; fileIndex++)
{
inExcelFile=new ExcelHandler(excelFiles[fileIndex], 0);
// colLength
int colLength=inExcelFile.getColLength(0);
if(fileIndex==0)// “ ”
{
for (int colIndex = 0; colIndex < colLength; colIndex++)
{
tempValue=inExcelFile.getStringValue(0, colIndex);
outExcelFile.setStringValue(0, colIndex, tempValue);
}
}
for (int colIndex = 0; colIndex < colLength; colIndex++)
{
// ( excel )
tempValue=inExcelFile.getStringValue(1, colIndex);
// fileindex+1
outExcelFile.setStringValue(fileIndex+1, colIndex, tempValue);
}
}
System.out.println("OK");
outExcelFile.saveAndClose();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.