sheet獲取文件頭信息java,怎麼在 sheet1和sheet2里提取1號的信息

本文目錄一覽:

java如何讀取整個excel文件的內容

本例使用java來讀取excel的內容並展出出結果,代碼如下:

複製代碼 代碼如下:

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.text.DecimalFormat;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Date;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFDateUtil;

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 ExcelOperate {

public static void main(String[] args) throws Exception {

File file = new File(“ExcelDemo.xls”);

String[][] result = getData(file, 1);

int rowLength = result.length;

for(int i=0;irowLength;i++) {

for(int j=0;jresult[i].length;j++) {

System.out.print(result[i][j]+”\t\t”);

}

System.out.println();

}

}

/**

* 讀取Excel的內容,第一維數組存儲的是一行中格列的值,二維數組存儲的是多少個行

* @param file 讀取數據的源Excel

* @param ignoreRows 讀取數據忽略的行數,比喻行頭不需要讀入 忽略的行數為1

* @return 讀出的Excel中數據的內容

* @throws FileNotFoundException

* @throws IOException

*/

public static String[][] getData(File file, int ignoreRows)

throws FileNotFoundException, IOException {

ListString[] result = new ArrayListString[]();

int rowSize = 0;

BufferedInputStream in = new BufferedInputStream(new FileInputStream(

file));

// 打開HSSFWorkbook

POIFSFileSystem fs = new POIFSFileSystem(in);

HSSFWorkbook wb = new HSSFWorkbook(fs);

HSSFCell cell = null;

for (int sheetIndex = 0; sheetIndex wb.getNumberOfSheets(); sheetIndex++) {

HSSFSheet st = wb.getSheetAt(sheetIndex);

// 第一行為標題,不取

for (int rowIndex = ignoreRows; rowIndex = st.getLastRowNum(); rowIndex++) {

HSSFRow row = st.getRow(rowIndex);

if (row == null) {

continue;

}

int tempRowSize = row.getLastCellNum() + 1;

if (tempRowSize rowSize) {

rowSize = tempRowSize;

}

String[] values = new String[rowSize];

Arrays.fill(values, “”);

boolean hasValue = false;

for (short columnIndex = 0; columnIndex = row.getLastCellNum(); columnIndex++) {

String value = “”;

cell = row.getCell(columnIndex);

if (cell != null) {

// 注意:一定要設成這個,否則可能會出現亂碼

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

switch (cell.getCellType()) {

case HSSFCell.CELL_TYPE_STRING:

value = cell.getStringCellValue();

break;

case HSSFCell.CELL_TYPE_NUMERIC:

if (HSSFDateUtil.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 HSSFCell.CELL_TYPE_FORMULA:

// 導入時如果為公式生成的數據則無值

if (!cell.getStringCellValue().equals(“”)) {

value = cell.getStringCellValue();

} else {

value = cell.getNumericCellValue() + “”;

}

break;

case HSSFCell.CELL_TYPE_BLANK:

break;

case HSSFCell.CELL_TYPE_ERROR:

value = “”;

break;

case HSSFCell.CELL_TYPE_BOOLEAN:

value = (cell.getBooleanCellValue() == true ? “Y”

: “N”);

break;

default:

value = “”;

}

}

if (columnIndex == 0 value.trim().equals(“”)) {

break;

}

values[columnIndex] = rightTrim(value);

hasValue = true;

}

if (hasValue) {

result.add(values);

}

}

}

in.close();

String[][] returnArray = new String[result.size()][rowSize];

for (int i = 0; i returnArray.length; i++) {

returnArray[i] = (String[]) result.get(i);

}

return returnArray;

}

/**

* 去掉字元串右邊的空格

* @param str 要處理的字元串

* @return 處理後的字元串

*/

public static String rightTrim(String str) {

if (str == null) {

return “”;

}

int length = str.length();

for (int i = length – 1; i = 0; i–) {

if (str.charAt(i) != 0x20) {

break;

}

length–;

}

return str.substring(0, length);

}

}

java如何讀取整個excel文件的內容?

在java程序添加spire.xls.jar依賴

import com.spire.xls.*;

public class ReadExcel {

    public static void main(String[] args) {

        //創建Workbook對象

        Workbook wb = new Workbook();

        //載入一個Excel文檔

        wb.loadFromFile(“C:\\Users\\Administrator\\Desktop\\test.xlsx”);

        //獲取第一個工作表

        Worksheet sheet = wb.getWorksheets().get(0);

        //遍歷工作表的每一行

        for (int i = 1; i  sheet.getLastRow() + 1; i++) {

            //遍歷工作的每一列

            for (int j = 1; j  sheet.getLastColumn() + 1; j++) {

                //輸出指定單元格的數據

                System.out.print(sheet.get(i,j).getText());

                System.out.print(“\t”);

            }

            System.out.print(“\n”);

        }

    }

}

用java代碼實現讀取Excel中每個sheet頁的內容,並且要與其他的Excel中某一列的值進行

/**

*

* p標題:readExcel/p

* p描述:讀取Excel文件數據/p

* @param excelfilePath Excel文件路徑

* @param startRow 開始行

* @param startCol 開始列

* @return ListArrayListString

* @throws IOException

* @throws BiffException

*/

public ListMapString, Object readExcel(String excelfilePath,int startRow, int startCol)

throws IOException, BiffException {

// 讀取xls文件

InputStream ins = new FileInputStream(excelfilePath);

// 設置讀文件編碼

WorkbookSettings setEncode = new WorkbookSettings();

setEncode.setEncoding(“UTF-8”);

Workbook rwb = Workbook.getWorkbook(ins, setEncode);

ListMapString, Object alldata = new ArrayListMapString, Object();

MapString, Object data = null;

alldata.clear();

// 獲得當前Excel表共有幾個sheet

Sheet[] sheets = rwb.getSheets();

// 獲得表數

int pages = sheets.length;

// 將excel表中的數據讀取出來

// 在從Excel中讀取數據的時候不需要知道每個sheet有幾行,有那多少列

for (int i = 0; i pages; i++) {

//這裡讀取excel中每個sheet的數據,Sheet sheet = rwb.getSheet(i); 讀取第二個sheet就是getSheet(1);

Sheet sheet = rwb.getSheet(i);

int cols = sheet.getColumns(); // 列

// 讀取每一行對應的列數目

// 循環讀取每一行的全部列數目的內容

int rows = sheet.getRows(); // 行

for (int r = startRow; r rows; r++) {

data = new HashMapString, Object();

// 行循環,Excel的行列是從(0,0)開始

for (int c = startCol; c cols; c++) {

Cell excelRows = sheet.getCell(c, r);

data.put(“bgbh”, excelRows.getContents());

}

alldata.add(data);

}

}

ins.close();

return alldata;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/158215.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 00:40
下一篇 2024-11-19 00:40

相關推薦

發表回復

登錄後才能評論