導航:首頁 > 編程語言 > javapoi包

javapoi包

發布時間:2022-06-14 11:10:15

❶ 用javaPOI包的方法獲取excel中的行列號

XlsMain .java 類
//該類有main方法,主要負責運行程序,同時該類中也包含了用poi讀取Excel(2003版)

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

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;

/**
*
* @author Hongten</br>
*
* 參考地址:http://hao0610.iteye.com/blog/1160678
*
*/
public class XlsMain {

public static void main(String[] args) throws IOException {
XlsMain xlsMain = new XlsMain();
XlsDto xls = null;
List<XlsDto> list = xlsMain.readXls();

try {
XlsDto2Excel.xlsDto2Excel(list);
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < list.size(); i++) {
xls = (XlsDto) list.get(i);
System.out.println(xls.getXh() + " " + xls.getXm() + " "
+ xls.getYxsmc() + " " + xls.getKcm() + " "
+ xls.getCj());
}

}

/**
* 讀取xls文件內容
*
* @return List<XlsDto>對象
* @throws IOException
* 輸入/輸出(i/o)異常
*/
private List<XlsDto> readXls() throws IOException {
InputStream is = new FileInputStream("pldrxkxxmb.xls");
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
XlsDto xlsDto = null;
List<XlsDto> list = new ArrayList<XlsDto>();
// 循環工作表Sheet
for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// 循環行Row
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if (hssfRow == null) {
continue;
}
xlsDto = new XlsDto();
// 循環列Cell
// 0學號 1姓名 2學院 3課程名 4 成績
// for (int cellNum = 0; cellNum <=4; cellNum++) {
HSSFCell xh = hssfRow.getCell(0);
if (xh == null) {
continue;
}
xlsDto.setXh(getValue(xh));
HSSFCell xm = hssfRow.getCell(1);
if (xm == null) {
continue;
}
xlsDto.setXm(getValue(xm));
HSSFCell yxsmc = hssfRow.getCell(2);
if (yxsmc == null) {
continue;
}
xlsDto.setYxsmc(getValue(yxsmc));
HSSFCell kcm = hssfRow.getCell(3);
if (kcm == null) {
continue;
}
xlsDto.setKcm(getValue(kcm));
HSSFCell cj = hssfRow.getCell(4);
if (cj == null) {
continue;
}
xlsDto.setCj(Float.parseFloat(getValue(cj)));
list.add(xlsDto);
}
}
return list;
}

/**
* 得到Excel表中的值
*
* @param hssfCell
* Excel中的每一個格子
* @return Excel中每一個格子中的值
*/
@SuppressWarnings("static-access")
private String getValue(HSSFCell hssfCell) {
if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
// 返回布爾類型的值
return String.valueOf(hssfCell.getBooleanCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
// 返回數值類型的值
return String.valueOf(hssfCell.getNumericCellValue());
} else {
// 返回字元串類型的值
return String.valueOf(hssfCell.getStringCellValue());
}
}

}

❷ 用java poi包讀取Excel單元格

String excelDir ="c:/tep.xls"; //excel路徑
FileInputStream finput = new FileInputStream("excelDir" );
POIFSFileSystem fs = new POIFSFileSystem( finput );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0); //參數 0 代表第一個sheet
HSSFRow row = sheet.getRow((short)0); //得到第一行
HSSFCell cell = row .getCell( (short) 0); //得到第一列
System.out.println(cell.getNumericCellValue()); //得到第一行第一列的單元格內容. 分數是數字型,注意內容的類型.
獲取顏色好像沒辦法

❸ 用Java的POI包讀取Excel的空單元格時出錯怎麼處理

public static String getStringCellValue(Cell cell) {
if(cell==null){
return null;
}
String value = "";
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
if (date != null) {
value = new SimpleDateFormat("yyyy-MM-dd").format(date);
} else {
value = "";
}
} else {
value =
new DecimalFormat("0").format(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_FORMULA: //導入時如果為公式生成的數據則無值
// System.out.println("Formula:" + cell.getStringCellValue());
if (!cell.getStringCellValue().equals("")) {
value = cell.getStringCellValue();
} else {
value = cell.getNumericCellValue() + "";
}
break;
case Cell.CELL_TYPE_BLANK:
break;
case Cell.CELL_TYPE_ERROR:
value = "";
break;
case Cell.CELL_TYPE_BOOLEAN:
value = (cell.getBooleanCellValue() == true ? "Y" : "N");
break;
default:
value = "";
}
return value;
}

❹ 為什麼我java工程中引入了poi包還是會報錯。。

你的項目上還有紅色感嘆號!!你沒有把jar導入,或者導入後沒有編譯

❺ 用java導出excel,關於poi包的問題

請問你是Web工程嗎?是用eclipse啟動Tomcat運行的嗎?,如果是,那你除了在Java Build Path中要導入POI的Jar包,而且要在Java EE Mole Dependencies中勾上這幾個Jar包,重新啟動Tomcat,就可以了。

❻ 關於Java 的 poi jar包

如果導入多個版本的jar包,且jar包中的包.類名相同的話,默認會按照classpath導入的順序選擇,你這里導入的3.7在3.0的classpath之前,因此系統選擇的是你新加入的3.7版本。而且這種情況只能選擇一個版本來完成,無法兩個版本一起使用。(因為包名和類名相同,但方法不同。)
你只能刪除你自己的jar包,使用本身系統中的3.0來完成

❼ JAVA使用poi包,向Excel中寫入批量數據

public static void drawExcel(HSSFWorkbook wb, String sheetName, String title, int n, List<?> exlList, int[] index){
List<Object[]> exList =(List<Object[]>)exlList;
int len = exList.get(0).length;
// 創建一個sheet表單
HSSFSheet sheet = wb.createSheet(sheetName);
Region region = null;
//樣式
HSSFCellStyle cellStyle1 = setStyleBorder(wb);
HSSFCellStyle cellStyle2 = setStyleFontBorder(wb);
// 創建標題行
HSSFRow row = sheet.createRow(0);
row.setHeight((short)500);
// 創建單元格
HSSFCell cell = null;
if(title != null && !"".equals(title)){
region = new Region(0, (short)0, 0, (short)(len- 1));
sheet.addMergedRegion(region);

cell = row.createCell(0);
// 標題寫入單元格
cell.setCellValue(title);
cell.setCellStyle(setStyleFontSize(wb, 18));
}else{
n = n - 1;
}

NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(8);
//合計信息
Double[] sum = new Double[len];
Object[] s = null;
for(int i = 0; i < exList.size(); i++){
s = exList.get(i);
row = sheet.createRow(i + n);
// 創建數據行
for(int j = 0; j < s.length; j++){
cell = row.createCell(j);
/***
* jobin create
*/
if(s[j] instanceof Integer || s[j] instanceof Float){
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
}else{
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
}
if(!StringUtils.isNotEmpty(s[j])){
cell.setCellStyle(cellStyle1);
continue;
}
String[] rs = null;
int l = 3000;
if(i == 0 && s[j].toString().indexOf(",") > 0){
rs = s[j].toString().split(",");
cell.setCellValue(rs[0]);
l = Integer.parseInt(rs[1]);
}else{
cell.setCellValue(s[j].toString());
}
if(i == 0){
cell.setCellStyle(cellStyle2);
//設置列寬
// if(j == 0){
sheet.setColumnWidth(j, l);
// }else if(j == s.length -1){
// sheet.setColumnWidth(j, 5000);
// }else{
// sheet.setColumnWidth(j, 3000);
// }
}else{
cell.setCellStyle(cellStyle1);
//合計統計
if(index != null){
for(int in : index){
if(in == j){
if(sum[in] == null) sum[in] = 0.0;
sum[in] += Double.parseDouble(s[j].toString());
}
}
}
}
}
}
//合計信息
if(index != null){
region = new Region(exList.size() + 1, (short)0, exList.size() + 1, (short)(index[0]-1));
sheet.addMergedRegion(region);
row = sheet.createRow(exList.size() + n);
for(int i = 0; i < sum.length; i++){
cell = row.createCell(i);
cell.setCellStyle(cellStyle2);
if(i == 0){
cell.setCellValue("合計");
}else if(sum[i] != null){
cell.setCellValue(formatter.format(sum[i]).replace(",", ""));
}
}
}

}
核心代碼,我項目上使用的

❽ java poi 要導哪些包

poi-3.0-rc4-20070503.jarpoi-2.0-final-20040126.jarcommons-io-1.4.jarcommons-fileupload-1.2.1.jar

❾ Java中的POI他是幹嘛的可以做什麼

這個是一個用於操作EXCEL和WORD的工具包,不過貌似開發團隊解散了,一直沒有更新,對WORD的支持不是很好,建議還是使用ITEXT之類吧

❿ java操作Excel要用的poi包怎麼下

打開那個頁面後
你會看到

Apache Download Mirrors
We suggest the following mirror site for your download:

http://www.devlib.org/apache/jakarta/poi/

Other mirror sites are suggested below. Please use the backup mirrors only to download PGP and MD5 signatures to verify your downloads or if no other mirrors are working.

點擊http://www.devlib.org/apache/jakarta/poi/
打開後會看到3個連接
Parent Directory
dev
release
選擇release里的bin連接,應該就有你想要的東西了吧

閱讀全文

與javapoi包相關的資料

熱點內容
linux命令新建文件 瀏覽:708
長線pdf 瀏覽:607
程序員電腦支持手寫 瀏覽:414
解壓頭戴式耳機推薦 瀏覽:344
紙條app上怎麼樣看對方主頁 瀏覽:883
編譯英語單詞怎麼寫 瀏覽:249
編譯原理和匯編原理的區別 瀏覽:864
如何給加密的pdf解密 瀏覽:770
華為盒子時間同步伺服器地址 瀏覽:95
python處理excel亂碼 瀏覽:391
mysql的命令行 瀏覽:822
jpeg採用什麼演算法 瀏覽:701
程序員紅軸薄膜 瀏覽:306
洗臉盆壓縮 瀏覽:780
dpd是什麼演算法 瀏覽:156
加密技術中的密鑰 瀏覽:962
qq企業郵箱本地客戶端伺服器地址 瀏覽:751
排序演算法框架 瀏覽:852
馬扎克qtn編程說明書下載 瀏覽:188
程序員在國外年齡 瀏覽:376