天天看點

poi 設定行高_Java+POI+相關文檔

Java POI 相關文檔

簡介

POI是“Point of Information”的縮寫

基本功能

結構:

HSSF - 提供讀寫Microsoft Excel格式檔案的功能。

XSSF - 提供讀寫Microsoft Excel OOXML格式檔案的功能。

HWPF - 提供讀寫Microsoft Word格式檔案的功能。

HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。

HDGF - 提供讀寫Microsoft Visio格式檔案的功能。

範文示範

建立Excel 文檔

示例1将示範如何利用Jakarta POI API 建立Excel 文檔。

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

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

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

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

import java.io.FileOutputStream;

public class CreateXL {

    public static String outputFile = "D:\\test.xls";

    public static void main(String argv[]) {

        try {

            // 建立新的Excel 工作簿

            HSSFWorkbook workbook = new HSSFWorkbook();

            // 在Excel工作簿中建一工作表,其名為預設值

            // 如要建立一名為"效益名額"的工作表,其語句為:

            // HSSFSheet sheet = workbook.createSheet("效益名額");

            HSSFSheet sheet = workbook.createSheet();

            // 在索引0的位置建立行(最頂端的行)

            HSSFRow row = sheet.createRow((short)0);

            //在索引0的位置建立單元格(左上端)

            HSSFCell cell = row.createCell((short)0);

            // 定義單元格為字元串類型

            cell.setCellType(HSSFCell.CELL_TYPE_STRING);//已過時

            // 在單元格中輸入一些内容

            cell.setCellValue("增加值");

            // 建立一輸出檔案流

            FileOutputStream fOut = new FileOutputStream(outputFile);

            // 把相應的Excel 工作簿存盤

            workbook.write(fOut);

            fOut.flush();

            // 操作結束,關閉檔案

            fOut.close();

            System.out.println("檔案生成...");

        } catch (Exception e) {

            System.out.println("已運作 xlCreate() : " + e);

        }

    }

}

讀取Excel文檔中的資料

示例2将示範如何讀取Excel文檔中的資料。假定在D盤JTest目錄下有一個檔案名為test1.xls的Excel檔案。

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

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

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

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

import java.io.FileInputStream;

public class ReadXL {

    public static String fileToBeRead = "D:\\test1.xls";

    public static void main(String argv[]) {

        try {

            // 建立對Excel工作簿檔案的引用

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

            // 建立對工作表的引用。

            // 本例是按名引用(讓我們假定那張表有着預設名"Sheet1")

            HSSFSheet sheet = workbook.getSheet("Sheet1");

            // 也可用getSheetAt(int index)按索引引用,

            // 在Excel文檔中,第一張工作表的預設索引是0,

            // 其語句為:HSSFSheet sheet = workbook.getSheetAt(0);

            // 讀取左上端單元

            HSSFRow row = sheet.getRow(0);

            HSSFCell cell = row.getCell((short)0);

            // 輸出單元内容,cell.getStringCellValue()就是取所在單元的值

            System.out.println("左上端單元是: " + cell.getStringCellValue());

        } catch (Exception e) {

            System.out.println("已運作xlRead() : " + e);

        }

    }

}

設定單元格格式

在這裡,我們将隻介紹一些和格式設定有關的語句,我們假定workbook就是對一個工作簿的引用。在Java中,第一步要做的就是建立和設定字型和單元格的格式,然後再應用這些格式:

1、建立字型,設定其為紅色、粗體:

HSSFFont font = workbook.createFont();

font.setColor(HSSFFont.COLOR_RED);

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

2、建立格式

HSSFCellStyle cellStyle= workbook.createCellStyle();

cellStyle.setFont(font);

3、應用格式

HSSFCell cell = row.createCell((short) 0);

cell.setCellStyle(cellStyle);

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

cell.setCellValue("标題 ");

4、處理WORD文檔

import java.io. * ;

import org.apache.poi.hwpf.extractor.WordExtractor;

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

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

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

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

public class TestPoi {

    public TestPoi() {}

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

        FileInputStream in = new FileInputStream("D:\\a.doc");

        WordExtractor extractor = new WordExtractor();

        String str = extractor.extractText(in);

        //System.out.println("the result length is"+str.length());

        System.out.println(str);

    }

}

poi 設定行高_Java+POI+相關文檔

EXCEL常用操作方法

1、得到Excel常用對象

POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:/test.xls"));

//得到Excel工作簿對象

HSSFWorkbook wb = new HSSFWorkbook(fs);

//得到Excel工作表對象

HSSFSheet sheet = wb.getSheetAt(0);

//得到Excel工作表的行

HSSFRow row = sheet.getRow(i);

//得到Excel工作表指定行的單元格

HSSFCell cell = row.getCell((short) j);

cellStyle = cell.getCellStyle();//得到單元格樣式

2、建立Excel常用對象

3、設定sheet名稱和單元格内容

wb.setSheetName(1, "第一張工作表",HSSFCell.ENCODING_UTF_16);

cell.setEncoding((short) 1);

cell.setCellValue("單元格内容");

4、取得sheet的數目

wb.getNumberOfSheets();

5、 根據index取得sheet對象

HSSFSheet sheet = wb.getSheetAt(0);

6、取得有效的行數

int rowcount = sheet.getLastRowNum();

7、取得一行的有效單元格個數

row.getLastCellNum();

8、單元格值類型讀寫

//設定單元格為STRING類型

cell.setCellType(HSSFCell.CELL_TYPE_STRING); 

//讀取為數值類型的單元格内容

cell.getNumericCellValue();

9、設定列寬、行高

sheet.setColumnWidth((short)column,(short)width);

row.setHeight((short)height);

10、添加區域,合并單元格

//合并從第rowFrom行columnFrom列

Region region = new Region((short)rowFrom,(short)columnFrom,(short)rowTo ,(short)columnTo);

// 到rowTo行columnTo的區域

sheet.addMergedRegion(region);

//得到所有區域

sheet.getNumMergedRegions()

11、儲存Excel檔案

FileOutputStream fileOut = new FileOutputStream(path);

wb.write(fileOut);

12、根據單元格不同屬性傳回字元串數值

public String getCellStringValue(HSSFCell cell) {

         String cellValue = "";

         switch (cell.getCellType()) {

           case HSSFCell.CELL_TYPE_STRING://字元串類型

               cellValue = cell.getStringCellValue();

               if(cellValue.trim().equals("")||cellValue.trim().length()<=0)

                 cellValue=" ";

               break;

           case HSSFCell.CELL_TYPE_NUMERIC: //數值類型

               cellValue = String.valueOf(cell.getNumericCellValue());

               break;

           case HSSFCell.CELL_TYPE_FORMULA: //公式

               cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

               cellValue = String.valueOf(cell.getNumericCellValue());

               break;

           case HSSFCell.CELL_TYPE_BLANK:

               cellValue=" ";

               break;

           case HSSFCell.CELL_TYPE_BOOLEAN:

               break;

           case HSSFCell.CELL_TYPE_ERROR:

               break;

           default:

               break;

         }

         return cellValue;

13、常用單元格邊框格式

HSSFCellStyle style = wb.createCellStyle();

style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下邊框

style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左邊框

style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框

style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框

14、設定字型和内容位置

HSSFFont f = wb.createFont();

f.setFontHeightInPoints((short) 11);//字号

f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗

style.setFont(f);

style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中

style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中

style.setRotation(short rotation);//單元格内容的旋轉的角度

HSSFDataFormat df = wb.createDataFormat();

style1.setDataFormat(df.getFormat("0.00%"));//設定單元格資料格式

cell.setCellFormula(string);//給單元格設公式

style.setRotation(short rotation);//單元格内容的旋轉的角度

15、插入圖檔

//先把讀進來的圖檔放到一個ByteArrayOutputStream中,以便産生ByteArray

ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();

BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));

ImageIO.write(bufferImg,"jpg",byteArrayOut);

//讀進一個excel模版

FileInputStream fos = new FileInputStream(filePathName+"/stencil.xlt");

fs = new POIFSFileSystem(fos);

//建立一個工作薄

HSSFWorkbook wb = new HSSFWorkbook(fs);

HSSFSheet sheet = wb.getSheetAt(0);

HSSFPatriarch patriarch = sheet.createDrawingPatriarch();

HSSFClientAnchor anchor = new HSSFClientAnchor(0,0,1023,255,(short) 0,0,(short)10,10);

patriarch.createPicture(anchor , wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));

16、調整工作表位置

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet("format sheet");

HSSFPrintSetup ps = sheet.getPrintSetup();

sheet.setAutobreaks(true);

ps.setFitHeight((short)1);

ps.setFitWidth((short)1);

POI:https://blog.csdn.net/qq_36841482/article/details/102883188

easypoi:http://easypoi.mydoc.io/

easyExcel:https://alibaba-easyexcel.github.io/index.html