excel數據提取程序java(從excel提取數據)

本文目錄一覽:

如何使用java從excel表提取內容

以下是使用java從excel表提取內容的程序 –

import java.io.File;import java.io.FileInputStream;import org.apache.tika.metadata.Metadata;import org.apache.tika.parser.ParseContext;import org.apache.tika.parser.microsoft.ooxml.OOXMLParser;import org.apache.tika.sax.BodyContentHandler;public class ExtractContentFromExcel {

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

// detecting the file type

BodyContentHandler handler = new BodyContentHandler();

Metadata metadata = new Metadata();

FileInputStream inputstream = new FileInputStream(new File(“excelExample.xlsx”));

ParseContext pcontext = new ParseContext();

// OOXml parser

OOXMLParser msofficeparser = new OOXMLParser();

msofficeparser.parse(inputstream, handler, metadata, pcontext);

System.out.println(“Contents of the document:” + handler.toString());

System.out.println(“Metadata of the document:”);

String[] metadataNames = metadata.names();

for (String name : metadataNames) {

System.out.println(name + “: ” + metadata.get(name));

}

}}Java

原ODF文件:excelExample.xlsx 的內容如下 –

執行上面示例代碼,得到以下結果 –

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/F:/worksp/javaexamples/libs/tika_libs/tika-app-1.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/F:/worksp/javaexamples/libs/tika_libs/tika-server-1.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See for an explanation.

SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

九月 27, 2017 5:15:47 上午 org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem

警告: JBIG2ImageReader not loaded. jbig2 files will be ignored

See

for optional dependencies.

TIFFImageWriter not loaded. tiff files will not be processed

See

for optional dependencies.

J2KImageReader not loaded. JPEG2000 files will not be processed.

See

for optional dependencies.

九月 27, 2017 5:15:47 上午 org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem

警告: org.xerial’s sqlite-jdbc is not loaded.

Please provide the jar on your classpath to parse sqlite files.

See tika-parsers/pom.xml for the correct version.

Contents of the document:Sheet1

編號 姓名 年齡 工作

1001 王傳大 22 Java軟體開發

1002 李小雙 29 項目經理

1020 張在傳 28 人事經理

Sheet2

Sheet3

Metadata of the document:

date: 2017-09-27T09:15:38Z

meta:creation-date: 2017-09-27T09:13:50Z

extended-properties:Application: Microsoft Excel

Creation-Date: 2017-09-27T09:13:50Z

dcterms:created: 2017-09-27T09:13:50Z

Last-Modified: 2017-09-27T09:15:38Z

dcterms:modified: 2017-09-27T09:15:38Z

Last-Save-Date: 2017-09-27T09:15:38Z

protected: false

meta:save-date: 2017-09-27T09:15:38Z

Application-Name: Microsoft Excel

modified: 2017-09-27T09:15:38Z

Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

custom:KSOProductBuildVer: 2052-10.1.0.6489Shell

易百教程移動端:請掃描本頁面底部(右側)二維碼並關注微信公眾號,回復:”教程” 選擇相關教程閱讀或直接訪問: 。

java怎麼獲取excel中的數據

使用java poi

package webservice;

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;

public class ExcelController {

@SuppressWarnings(“deprecation”)

public void excel() throws FileNotFoundException, IOException{

String filename = “d:\\excel.xls”;

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filename));

//按名引用excel工作表

// HSSFSheet sheet = workbook.getSheet(“JSP”);

//用式獲取excel工作表採用工作表索引值

HSSFSheet sheet = workbook.getSheetAt(0);

HSSFRow row ;

HSSFCell cell1;

int rows=sheet.getLastRowNum();

for(int icount=0;icountrows;icount++){

row = sheet.getRow(icount);

int line=row.getPhysicalNumberOfCells();

for(int j=0;jline;j++){

cell1= row.getCell(j);

System.out.println(cell1+”–“+icount+”—“+j);

}

}

//列印讀取值

// System.out.println(cell.getStringCellValue());

//新建輸流

FileOutputStream fout = new FileOutputStream(filename); //PS:filename 另存路徑處理直接寫入模版文件

//存檔

workbook.write(fout);

fout.flush();

//結束關閉

fout.close();

}

public HSSFCell getCell(HSSFRow row, int index) {

// 取發期單元格

HSSFCell cell = row.getCell(index);

// 單元格存

if (cell == null) {

// 創建單元格

cell = row.createCell(index);

}

// 返單元格

return cell;

}

public static void main(String[] args) {

ExcelController ec = new ExcelController();

try {

ec.excel();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

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”);

        }

    }

}

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:21
下一篇 2024-12-12 13:21

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29

發表回復

登錄後才能評論