當前位置: 首頁>>代碼示例>>Java>>正文


Java Row.getLastCellNum方法代碼示例

本文整理匯總了Java中org.apache.poi.ss.usermodel.Row.getLastCellNum方法的典型用法代碼示例。如果您正苦於以下問題:Java Row.getLastCellNum方法的具體用法?Java Row.getLastCellNum怎麽用?Java Row.getLastCellNum使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.poi.ss.usermodel.Row的用法示例。


在下文中一共展示了Row.getLastCellNum方法的13個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: readExcel

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
public static List<String[]> readExcel(InputStream is, int sheetIndex) throws Exception {
	Workbook workbook = WorkbookFactory.create(is);
	Sheet sheet = workbook.getSheetAt(sheetIndex);
	List<String[]> data = new ArrayList<>();
	for (int i = sheet.getFirstRowNum(); i <= sheet.getLastRowNum(); i++) {
		Row row = sheet.getRow(i);
		if (row == null) continue;
		int last = row.getLastCellNum();
		String[] rowData = new String[last];
		for (int j = 0; j < last; j++) {
			Cell cell = row.getCell(j);
			rowData[j] = cell == null ? null : getCellString(cell);
		}
		data.add(rowData);
	}
	return data;
}
 
開發者ID:21ca,項目名稱:selenium-testng-template,代碼行數:18,代碼來源:FileUtils.java

示例2: getClasses

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
private List<String> getClasses(Row classRow) {
	//聲明一個list,用來存放所有的字段類型
	List<String> classList = new ArrayList<String>();
	//判斷這一行是否為空
	if (classRow != null) {
		//遍曆這一行的所有單元格
		for (int i = 0; i < classRow.getLastCellNum(); i++) {
			//獲取單元格
			Cell cell = classRow.getCell(i);
			//判斷單元格是否為空
			if (cell != null) {
				//將單元格的內容存放到list中
				classList.add(cell.getStringCellValue());
			}
		}
	}
	//返回所有的字段類型
	return classList;
}
 
開發者ID:yuchaozxc,項目名稱:ExcelToXml,代碼行數:20,代碼來源:ExcelToXml.java

示例3: setSheetData

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
private void setSheetData(SheetData data, String group) {
	data.setCurrentGroup(group);
	// start from 1
	data.setCurrentIndex(1);
	// get sheet
	Sheet vSheet = getWorkBook().getSheet(group);
	Assert.notNull(vSheet, "Can't get sheet with name: " + group);
	data.setSheet(vSheet);
	// get row number
	int vRowCount = vSheet.getLastRowNum() + 1;
	data.setRowCount(vRowCount);
	// get first row
	Row vRow = vSheet.getRow(0);
	Assert.notNull(vRow, "Invalid format: first row must be title");
	// get column number
	int vColumnCount = vRow.getLastCellNum();
	String[] vTitles = new String[vColumnCount];
	// read titles
	for (int i = 0; i < vColumnCount; ++i) {
		Cell vCell = vRow.getCell(i);
		vTitles[i] = vCell.getStringCellValue();
	}
	data.setTitles(vTitles);
}
 
開發者ID:xinufo,項目名稱:teemo,代碼行數:25,代碼來源:ExcelReader.java

示例4: parseRow

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
/**
 * 解析行
 * @param row
 * @return
 */
protected List<Object> parseRow(Row row) {
	List<Object> rowData = new ArrayList<Object>();

	for (int i = 0; i < row.getLastCellNum(); i++) {
		Cell cell = row.getCell(i);
		Object cellObj=null;
		if(cell!=null){
			cellObj = parseCell(cell);
		}
		rowData.add(cellObj);
	}
	/*// 迭代 一行的各個單元格
	Iterator<Cell> cellIterator = row.iterator();
	// 遍曆一行多列
	while (cellIterator.hasNext()) {
		Cell cell = cellIterator.next();
		Object cellObj = parseCell(cell);
		rowData.add(cellObj);
	}*/
	return rowData;
}
 
開發者ID:babymm,項目名稱:mumu,代碼行數:27,代碼來源:ExcelParser.java

示例5: getAnnotations

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
private List<String> getAnnotations(Row annotationRow) {
	//聲明一個list,用來存放所有的字段說明
	List<String> annotationList = new ArrayList<String>();
	//判斷,字段說明那一行是否為空
	if (annotationRow != null) {
		//遍曆字段說明這一行所有的單元格
		for (int i = 0; i < annotationRow.getLastCellNum(); i++) {
			//獲取單元格
			Cell cell = annotationRow.getCell(i);
			//判斷單元格是否為空
			if (cell != null) {
				//將單元格中的內容放入List中
				annotationList.add(cell.getStringCellValue());
			}
		}
	}
	//返回所有的字段說明
	return annotationList;
}
 
開發者ID:yuchaozxc,項目名稱:ExcelToXml,代碼行數:20,代碼來源:ExcelToXml.java

示例6: isRowEmpty

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
private boolean isRowEmpty(Row row) {
    for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) {
        Cell cell = row.getCell(c, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
        if (cell != null && cell.getCellTypeEnum() != CellType.BLANK)
            return false;
    }
    return true;
}
 
開發者ID:ozlerhakan,項目名稱:poiji,代碼行數:9,代碼來源:HSSFUnmarshaller.java

示例7: getNames

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
private Object[] getNames(Row namesRow) {
	//實例化一個List,該list中存放的是所有的字段名
	List<String> nameList = new ArrayList<String>();
	//實例化一個int值,該值表示key字段在excel中的位置
	int keyNum = 0;
	//實例化一個object類型的數組,該數組中存放的是所有的字段名和key字段的位置
	Object[] obj = new Object[2];
	//判斷namesRow這個行是否為空
	if (namesRow != null) {
		//遍曆namesRow這一行
		for (int i = 0; i < namesRow.getLastCellNum(); i++) {
			//獲取單元格
			Cell cell = namesRow.getCell(i);
			//判斷單元格是否為空
			if (cell != null) {
				//添加單元格的內容到nameList中
				nameList.add(cell.getStringCellValue());
				//判斷這個單元格的內容是不是Key
				if (cell.getStringCellValue().equalsIgnoreCase("Key")) {
					//記錄Key的位置
					keyNum = i;
				}
			}
		}
	}
	//將所有的字段名放入obj[0]
	obj[0] = nameList;
	//將key列的位置放入obj[1]
	obj[1] = keyNum;
	//返回obj
	return obj;
}
 
開發者ID:yuchaozxc,項目名稱:ExcelToXml,代碼行數:33,代碼來源:ExcelToXml.java

示例8: getCharacteristicsValues

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
private Map<Characteristic, CharacteristicValue> getCharacteristicsValues(Row row, List<Characteristic> characteristics) {
  Map<Characteristic, CharacteristicValue> characteristicsValues = new HashMap<>();

  for (int i = 1; i < row.getLastCellNum(); i++) {
    characteristicsValues.put(characteristics.get(i - 1), new CharacteristicValue(row.getCell(i).getStringCellValue()));
  }

  return characteristicsValues;
}
 
開發者ID:RusZ,項目名稱:TextClassifier,代碼行數:10,代碼來源:ExcelFileReader.java

示例9: copyRowByBlankSpace

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
/**
 * 行複製功能(空白行的複製,即隻複製格式和固定文字,不填充數據)
 * 
 * @author      ZhengWei(HY)
 * @createDate  2017-07-03
 * @version     v1.0
 *
 * @param i_RTemplate      模板
 * @param i_TemplateRow    模板中的行對象
 * @param i_DataWorkbook   數據工作薄
 * @param io_RTotal        將數據寫入Excel時的輔助統計信息。
 * @param io_RSystemValue  係統變量信息
 * @param i_DataRow        數據中的行對象
 * @param i_Datas          本行對應的數據
 * 
 * @return                 返回本方法內一共生成多少新行。
 */
public final static int copyRowByBlankSpace(RTemplate i_RTemplate ,Row i_TemplateRow ,RWorkbook i_DataWorkbook ,RTotal io_RTotal ,RSystemValue io_RSystemValue ,Row i_DataRow) 
{
    i_DataRow.setHeight(    i_TemplateRow.getHeight());
    i_DataRow.setZeroHeight(i_TemplateRow.getZeroHeight());
    
    int v_CellCount = i_TemplateRow.getLastCellNum();
    
    for (int v_CellIndex=0; v_CellIndex<v_CellCount; v_CellIndex++) 
    {
        Cell v_TemplateCell = i_TemplateRow.getCell(v_CellIndex);
        if ( v_TemplateCell == null )
        {
            continue;
        }
        
        Cell v_DataCell = i_DataRow.getCell(v_CellIndex);
        if ( v_DataCell == null ) 
        {
            v_DataCell = i_DataRow.createCell(v_CellIndex);
        }
        
        copyCellByBlankSpace(i_RTemplate ,v_TemplateCell ,i_DataWorkbook ,v_DataCell ,io_RSystemValue);
    }
    
    return 0;
}
 
開發者ID:HY-ZhengWei,項目名稱:hy.common.report,代碼行數:44,代碼來源:JavaToExcel.java

示例10: determineTestDataFrame

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
/**
 * Iterates through the sheet and determines the cells that are between START_TEST_CASE and END_TEST_CASE comments.
 * Also determines if the data table is to be returned as a Cartesian product of the rows.
 * @param sheet
 * @throws DataProviderException
 */
private void determineTestDataFrame(
                                     Sheet sheet ) throws DataProviderException {

    int rows = sheet.getLastRowNum() + 1;
    int columns = sheet.getRow(sheet.getLastRowNum()).getLastCellNum();
    // iterate throughout the spreadsheet's cells
    for (int x = 0; x < columns; x++) {
        for (int y = 0; y < rows; y++) {
            Row rowValue = sheet.getRow(y);
            if (rowValue != null) {

                if (rowValue.getLastCellNum() > columns) {
                    columns = rowValue.getLastCellNum();
                }

                Cell current = rowValue.getCell(x, Row.CREATE_NULL_AS_BLANK);
                if (hasComments(current)) {
                    if (isStartingCell(current)) {
                        this.startingCell = current;
                    }
                    if (isEndingCell(current)) {
                        this.endingCell = current;
                    }
                    if (isMultiplyCell(current)) {
                        this.isMultipliable = true;
                    }
                }
            }
        }
    }

    if (this.startingCell == null) {
        throw new DataProviderException(ERROR_LOCATING_STARTING_CELL);
    } else if (this.endingCell == null) {
        throw new DataProviderException(ERROR_LOCATING_ENDING_CELL);
    }

    if (this.startingCell.getRowIndex() <= this.endingCell.getRowIndex()) {
        if (this.startingCell.getColumnIndex() <= this.endingCell.getColumnIndex()) {
            return;
        }
    }

    throw new DataProviderException(WRONG_ORDER);
}
 
開發者ID:Axway,項目名稱:ats-framework,代碼行數:52,代碼來源:ExcelParser.java

示例11: getTypes

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
private Object[] getTypes(Row typeRow, int keyNum) {
	//聲明一個List,用來存放所有要放入生成的client端的xml文件中的數據位置信息
	List<Integer> cnums = new ArrayList<Integer>();
	//聲明一個List,用來存放所有要放入生成的server端的xml文件中的數據位置信息
	List<Integer> snums = new ArrayList<Integer>();
	//聲明一個boolean值,用來判斷是否要生成client端的xml文件
	boolean cfal = false;
	//聲明一個boolean值,用來判斷是否要生成server端的xml文件
	boolean sfal = false;
	//聲明一個object數字,用來存放這一行所要返回的信息
	Object[] obj = new Object[4];
	//判斷這一行是否為空
	if (typeRow != null) {
		//遍曆這一行的所有單元格
		for (int i = 0; i < typeRow.getLastCellNum(); i++) {
			//獲取單元格
			Cell cell = typeRow.getCell(i);
			//判斷單元格是否為空
			if (cell != null) {
				//判斷單元格的內容是否為C,為C表示這一列要放入到生成的client端要使用的xml文件中
				if (cell.getStringCellValue().equals("C")) {
					//添加單元格位置到cnums中
					cnums.add(i);
					//判斷是否是key列,如果是,表示要生成client端使用的xml文件
					if (keyNum == i) {
						//將判斷是否生成client端使用的xml文件的標誌設為true
						cfal = true;
					}
				//判斷單元格的內容是否為S,為S表示這一列要放入到生成的server端要使用的xml文件中
				} else if (cell.getStringCellValue().equals("S")) {
					//添加單元格位置到snums中
					snums.add(i);
					//判斷是否是key列,如果是,表示要生成server端使用的xml文件
					if (keyNum == i) {
						//將判斷是否生成server端使用的xml文件的標誌設為true
						sfal = true;
					}
				//判斷單元格的內容是否為A,為A表示這一列既要放入到生成的client端使用的xml文件中,又要放入到生成的server端要使用的xml文件中
				} else if (cell.getStringCellValue().equals("A")) {
					//添加單元格位置到cnums中
					cnums.add(i);
					//添加單元格位置到snums中
					snums.add(i);
					//判斷是否是key列,如果是,表示要生成client端和server端使用的xml文件
					if (keyNum == i) {
						//將判斷是否生成client端使用的xml文件的標誌設為true
						cfal = true;
						//將判斷是否生成server端使用的xml文件的標誌設為true
						sfal = true;
					}
				}
			}
		}
	}
	//將要生成client端xml文件的位置信息放入到obj[0]
	obj[0] = cnums;
	//將要生成server端xml文件的位置信息放入到obj[1]
	obj[1] = snums;
	//將判斷是否要生成client端xml文件的標誌放入到obj[2]
	obj[2] = cfal;
	//將判斷是否要生成server端xml文件的標誌放入到obj[3]
	obj[3] = sfal;
	//返回這一行所有的信息
	return obj;
}
 
開發者ID:yuchaozxc,項目名稱:ExcelToXml,代碼行數:66,代碼來源:ExcelToXml.java

示例12: readDatas

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
public final static PartitionMap<String ,RCell> readDatas(Sheet i_Sheet ,Integer i_BeginRow ,Integer i_EndRow)
{
    PartitionMap<String ,RCell> v_Ret      = new TablePartition<String ,RCell>();
    Sheet                       v_Sheet    = i_Sheet;
    int                         v_BeginRow = 0;
    int                         v_EndRow   = 0;
    
    if ( i_BeginRow != null )
    {
        v_BeginRow = i_BeginRow.intValue();
        
        if ( v_BeginRow < 0 )
        {
            v_BeginRow = 0;
        }
    }
    
    if ( i_EndRow != null )
    {
        v_EndRow = i_EndRow.intValue();
    }
    else
    {
        v_EndRow = v_Sheet.getPhysicalNumberOfRows();
    }
    
    for (int v_RowNo=v_BeginRow; v_RowNo<=v_EndRow; v_RowNo++)
    {
        Row v_Row = v_Sheet.getRow(v_RowNo);
        if ( v_Row == null )
        {
            continue;
        }
        
        short v_CellCount = v_Row.getLastCellNum();
        
        for (int v_ColumnNo=0; v_ColumnNo<v_CellCount; v_ColumnNo++)
        {
            Cell v_Cell = v_Row.getCell(v_ColumnNo);
            if ( v_Cell == null )
            {
                continue;
            }
            
            if ( v_Cell.getCellTypeEnum() == CellType.STRING )
            {
                String v_Value = v_Cell.getStringCellValue();
                
                if ( !Help.isNull(v_Value) )
                {
                    RCell        v_RCell    = new RCell(v_RowNo ,v_ColumnNo);
                    List<String> v_Decimals = StringHelp.getString(v_Cell.getCellStyle().getDataFormatString() ,$Decimal);
                    if ( !Help.isNull(v_Decimals) )
                    {
                        v_RCell.setDecimal(v_Decimals.get(0).split("\\.")[1].length());
                    }
                    
                    v_Ret.putRow(v_Value.trim() ,v_RCell);
                }
            }
            else if ( v_Cell.getCellTypeEnum() == CellType.NUMERIC )
            {
                if ( HSSFDateUtil.isCellDateFormatted(v_Cell) ) 
                {
                    if ( v_Cell.getDateCellValue() != null )
                    {
                        v_Ret.putRow((new Date(v_Cell.getDateCellValue())).getFull() ,new RCell(v_RowNo ,v_ColumnNo));
                    }
                } 
                else 
                {
                    v_Ret.putRow(String.valueOf(v_Cell.getNumericCellValue()) ,new RCell(v_RowNo ,v_ColumnNo));
                }
            }
        }
    }
    
    return v_Ret;
}
 
開發者ID:HY-ZhengWei,項目名稱:hy.common.report,代碼行數:80,代碼來源:ExcelHelp.java

示例13: read

import org.apache.poi.ss.usermodel.Row; //導入方法依賴的package包/類
/**
 * 處理excel到List(用於簡單導入,不返回具體實體的列表/簡單導入使用)
 *
 * @param inputStream 文件流
 * @return 數據列表
 */
public static List<Map<String, String>> read(InputStream inputStream) throws IOException,
        InvalidFormatException {


    Sheet sheet = inputStream2Sheet(inputStream);
    if (sheet == null) {
        return Collections.emptyList();
    }

    Row row;
    Iterator<Row> rows = sheet.rowIterator();
    //表頭
    List<String> titleList = new ArrayList<>();

    List<Map<String, String>> result = new ArrayList<>();
    //是否是第一行
    boolean firstRow = true;
    while (rows.hasNext()) {
        //每行數據的Map,key為表頭,value為值
        Map<String, String> map = new HashMap<>();

        row = rows.next();
        if (isBlankRow(row)) {
            break;
        }

        for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {
            Cell cell = row.getCell(i);
            if (cell == null) {
                continue;
            }
            //取得cell值
            String cellValue = getCellFormatValue(cell);
            if (firstRow) {
                titleList.add(cellValue.trim());
            } else {
                if (i < titleList.size()) {
                    map.put(titleList.get(i), cellValue.trim());
                }
            }
        }
        //每行記錄加入
        if (map.size() > 0) {
            result.add(map);
        }
        //第一行設置為否
        firstRow = false;
    }
    return result;
}
 
開發者ID:goribun,項目名稱:excel-rw-annotation,代碼行數:57,代碼來源:BaseReadUtil.java


注:本文中的org.apache.poi.ss.usermodel.Row.getLastCellNum方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。