November 11, 2004

xiaoxiao2021-03-06  76

Recently, because of the needs of the project, a Java read an example of reading an Excel file is written, there is a lot of works on the date and the formula. When starting, I really cost a lot of work, huh, huh. Later, after I found it, I finally had a little smaller, and I posted it with everyone.

However, there is still a WARING: That is to read Merge data [Warning] Unknown PTG 2D (45) I don't know who has a solution, I will throw a brick first, and I have jade, although I'm coming over.

Package com.zzxy.model;

Import java.io.fileinputstream;

Import java.io.fileoutputstream;

Import java.text.decimalformat;

Import java.util.date;

Import org.apache.poi.hssf.record.formularcord;

Import org.apache.poi.hssf.record.formula.areaptg;

Import org.apache.poi.hssf.usermodel.hssfcell;

Import org.apache.poi.hssf.usermodel.hssfcellstyle;

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.hssf.usermodel.hssfdataFormat;

Import org.apache.poi.hssf.record.calccountRecord;

/ **

*

* Author

*

* Java reads the Excel file

*

* Level of an Excel file: Excel file -> Worksheet -> Row -> cells correspond to POI, for: Workbook-> Sheet-> Row-> Cell

*

* /

Public class poitest {

Public static string outputfile = "c: //temp/test.xls";

Public static string filetoberead = "c: //temp/test.xls";

Public void createexcel () {

Try {

// Create a new Excel workbook

HSSFWORKBOOK WORKBOOK = New HSSFWORKBOOK ();

// Construct a work table in the Excel workbook, named the default

// To create a worksheet that is "benefit indicator", its statement is:

// HSSFSHEET Sheet = Workbook.createsheet ("Benefits Indicators"

HSSFSHEET Sheet = Workbook.createsheet ();

/ / Create a line in the location of index 0 (top row)

HSSFrow Row = Sheet.createrow ((Short) 0);

/ / Create a single element in the position of index 0 (upper left)

HSSfcell Cell = row.createcell ((Short) 0);

// Define the cell is a string type

Cell.SetCellType (hssfcell.cell_type_string); // Enter some content in cell

Cell.setcellValue ("SWEATER");

// New output file stream

FileOutputStream Fout = New FileOutputStream (OutputFile);

// Put the corresponding Excel workbook storage

Workbook.write (fout);

Fout.flush ();

// End, close the file

Fout.close ();

System.out.println ("File Generate ...");

} catch (exception e) {

System.out.Println ("is running xlcreate ():" E);

}

}

/ **

* Read the Excel, traverse each clenching information, and determine if it is a mobile phone number, and display the correct mobile number

*

* Note: 1. SHEET, start with 0 to workbook.getnumberofsheets () - 1

* 2.Row, start with 0 (GetFirstrownum), ending with GetLastrownum

* 3.Cell, starting with 0, endlastcenum, ending, the number of ends, unknown, different lengths, may be as long as the length of the display

* /

Public void readExcel () {

// will be expressed as the number of 1.3922433397E10 to 13922433397

// decimalformat df = new decimalformat ("#");

Try {

// Create a reference to the Excel workbook file

HSSFWORKBOOK WORKBOOK = New HSSFWORKBOOK (New FileInputStream

FiletobeRead));

//System.out.println ("===sheetsnum=== " Workbook.getNumberofsheets ()); // Get the number of Sheet

For (int Numsheets = 0; Numsheets

IF (NULL! = Workbook.getsheetat (Numsheets)) {

Hssfsheet asheet = workbook.getsheetat (numsheets); // get a Sheet

if (! asheet.isdisplayformulas ()) // Judgment is the value of the formula in Asheet

Asheet.SetDisplayFormulas (TRUE);

//System.out.println (" Getfirstrownum asheet.getfirstrownum ());

//System.out.println (" Getlastrownum asheet.getlastrownum ());

For (int rownumofsheet = 0); rownumofsheet <= asheet

.getlastrownum (); rownumofsheet ) {

IF (null! = asheet.Getrow (rownumofsheet)) {hssfrow is = asheet.getrow (rownumofsheet);

//System.out.println (">>> getFirstCellnum <<<" zym ());

//System.out.println (">> getLastcellnum <<< " arow.getlastCellnum ());

For (Short Cellnumofrow = 0; Cellnumofrow <= AROW

.GetlastCellnum (); cellnumofrow ) {

//System.out.println (">>Rownumofsheet ";" "" "

//System.out.println (">>>cellnumofrow<<<" cellnumofrow);

IF (NULL! = Arow.getcell (Cellnumofrow) {

HSSfcell Acell = Arow.getcell (Cellnumofrow);

INT CELLTYPE = Acell.getcellType ();

Switch (CellType) {

Case hssfcell.cell_type_numeric: // numeric

String strCell = String.Valueof (Acell.getNumericCellvalue ());

IF (HSSFDateutil.iscellDateFormatted (ACell))

{

// double sa = acell.getNumericCellValue ();

// Date DD = HSSFDateutil.getjavadate (SA);

// hssfdataformat tt = new hssfdataformat (Workbook);

//dd.tostring ();

System.out.println (Acell.getdateCellValue ());

}

Else

System.out.println (Strcell);

Break;

Case hssfcell.cell_type_string: // String

Strcell = Acell.getstringcellValue ();

System.out.println (Strcell);

Break;

Case hssfcell.cell_type_formula: // Formula

// strcell = acell.getcellformula ();

Strcell = String.Valueof (Acell.getNumericcellValue ());

System.out.println (Strcell);

Break;

Case hssfcell.cell_type_blank: // blank

Strcell = Acell.getstringcellValue ();

System.out.println (Strcell);

Break;

DEFAULT:

System.out.println ("-------------- format reading is incorrect!"); // Other format data

}

}

}

}

}

}

System.out.println ("// Sheet End ///);

}

} catch (Exception E) {system.out.println ("Readexcelerror" E);

}

}

/ / Read the value of the cell specified row and column, pay attention: line, column subscript starts from 0

Public void getSpecial (Short Numrow, Short Numcol) {

Try {

// Create a reference to the Excel workbook file

HSSFWORKBOOK WORKBOOK = New HSSFWORKBOOK (New FileInputStream (FiletobeRead);

IF (null! = Workbook.getsheetat (0)) {

HSSFSHEET Asheet = Workbook.getsheetat (0); // Get a Sheet

IF (NULL! = asheet.getrow) {

HSSFROW AROW = asheet.Getrow (Numrow);

IF (NULL! = Arow.getcell (Numcol) {

HSSfcell Acell = AROW.GETCELL (NUMCOL);

INT CELLTYPE = Acell.getcellType ();

Switch (CellType) {

Case 0: // numeric

String strCell = String.Valueof (Acell.getNumericCellvalue ());

IF (HSSFDateutil.iscellDateFormatted (ACell))

System.out.println ("00000000000000000" acell.getdatecellValue ());

Else

System.out.println (Strcell);

Break;

Case 1: // String

Strcell = Acell.getstringcellValue ();

System.out.println ("111111111111111111" strCell);

Break;

Case 2: // formula

Asheet.SetDisplayFormulas (TRUE);

Strcell = String.Valueof (Acell.getNumericcellValue ());

System.out.println ("2222222222222222222" STRCELL);

Break;

Case 3: // blank

Strcell = Acell.getstringcellValue ();

System.out.println ("33333333" STRCELL);

Break;

DEFAULT:

System.out.println ("-------------- format reading is incorrect!"); // Other format data

}

}

}

}

} catch (exception e) {

System.out.println ("Readexcelerror" E);

}

}

Public static void main (String [] args) {

Poitest POI = New Poitest ();

//poi.createexcel ();

POI.Readexcel ();

POI.GETSPECIAL ((Short) 4, (Short) 4); // The data value of the fifth column of the fifth line

}

}

转载请注明原文地址:https://www.9cbs.com/read-93162.html

New Post(0)