国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java】使用 HSSFWorkbook 生成 Excel 并導(dǎo)出步驟

這篇具有很好參考價值的文章主要介紹了【Java】使用 HSSFWorkbook 生成 Excel 并導(dǎo)出步驟。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、我常用的幾個對象

HSSFWorkbook

1、含義:excel的工作簿

2、創(chuàng)建工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

3、創(chuàng)建 excel 的工作表

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");

4、創(chuàng)建單元格樣式

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle cellStyle = workbook.createCellStyle();

HSSFSheet

1、含義:excel 的工作表

2、創(chuàng)建行(第一行從 0 開始)

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");
HSSFRow row = sheet.createRow(0);

3、設(shè)置單元格寬度

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");
// 0 是第一列,后面長度以 x * 256 去填寫
sheet.setColumnWidth(0, 8*256)

HSSFCellStyle

1、含義:單元格樣式

2、屬性設(shè)置

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle cellStyle = workbook.createCellStyle();
// 垂直居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 水平居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
// 設(shè)置邊框
cellStyle.setBorderBottom(BorderStyle.MEDIUM);
cellStyle.setBorderLeft(BorderStyle.MEDIUM);
cellStyle.setBorderRight(BorderStyle.MEDIUM);
cellStyle.setBorderTop(BorderStyle.MEDIUM);
// 設(shè)置背景色(FillPattren必須設(shè)置,不然不生效)
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.index);

// 字體
Font font = workbook.createFont();
// 字體類型
font.setFontName("宋體");
// 字體大小
font.setFontHeightInPoints((short) 22);
// 字體加粗
font.setBold(true);
// 設(shè)置字體
cellStyle.setFont(font);

HSSFRow

1、含義:excel 的行

2、創(chuàng)建行對應(yīng)的單元格(第一個單元格從 0 開始)

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);

3、屬性設(shè)置

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");
HSSFRow row = sheet.createRow(0);
// 設(shè)置行高
row.setHeightInPoints(30f);

HSSFCell

1、excel 的單元格

2、屬性設(shè)置

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
// 這里填入上面說的自己設(shè)置的 HSSFCellStyle
cell.setCellStyle(cellStyle);
// 這里填入想要顯示的文本
cell.setCellValue(cellValue);

CellRangeAddress

1、含義:單元格范圍地址(合并單元格需使用)

2、單元格范圍地址創(chuàng)建(先設(shè)置范圍再設(shè)置單元格不容易弄亂)

/**
 * firstRow 第一行的索引
 * lastRow  最后一行(包括)的索引,必須等于或大于firstRow
 * firstCol 第一列的索引
 * lastCol  最后一列(含)的索引,必須等于或大于firstCol
 */ 
CellRangeAddress region = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");
// firstRow 和 lastRow 表示第一行,firstCol 和 lastCol 表示 15 列,全部相當(dāng)于 15 個單元格合并
CellRangeAddress region = new CellRangeAddress(0, 0, 0, 14);
// 將單元格范圍地址設(shè)置到工作表里面
sheet.addMergedRegion(region);
// 單元格范圍地址加邊框
RegionUtil.setBorderBottom(BorderStyle.MEDIUM, region, sheet);
RegionUtil.setBorderLeft(BorderStyle.MEDIUM, region, sheet);
RegionUtil.setBorderRight(BorderStyle.MEDIUM, region, sheet);
RegionUtil.setBorderTop(BorderStyle.MEDIUM, region, sheet);

二、導(dǎo)出 Excel 代碼

1、導(dǎo)出到指定文件里面

public void exportExcel() {
    OutputStream out = null;
    try {
		// 創(chuàng)建工作簿 HSSFWorkbook
		// 創(chuàng)建工作表 HSSFSheet
		// 創(chuàng)建行 HSSFRow
		// 如果有合并單元格需求創(chuàng)建單元格范圍地址 CellRangeAddress
		// 創(chuàng)建 HSSFCellStyle
		// 創(chuàng)建 HSSFCell
	
		// 輸出到對應(yīng)文件里面
		out = new FileOutputStream("D:/test.xlsx");
		// 將流寫入工作簿中
        workbook.write(out);
        out.flush();
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
        if (out != null) {
            try {
                out.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
}

2、瀏覽器導(dǎo)出

public void exportExcel(HttpServletResponse response) throws IOException, DocumentException {
	OutputStream outputStream = response.getOutputStream();
	response.reset();
	String filename = "Excel文件名稱.xlsx";
    response.setContentType("application/msexcel");
    response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8"));

	// 創(chuàng)建工作簿 HSSFWorkbook
	// 創(chuàng)建工作表 HSSFSheet
	// 創(chuàng)建行 HSSFRow
	// 如果有合并單元格需求創(chuàng)建單元格范圍地址 CellRangeAddress
	// 創(chuàng)建 HSSFCellStyle
	// 創(chuàng)建 HSSFCell

	// 將流寫入工作簿中
	workbook.write(outputStream);
    outputStream.flush();
    outputStream.close();
}

3、如果代碼太多,可以根據(jù)自己需求把代碼部分代碼提取出來

/**
 * 設(shè)置單元格相關(guān)樣式以及設(shè)置字體
 *
 * @param workbook           哪個工作簿
 * @param align              哪個水平方向
 * @param isBorder           是否要邊框
 * @param isForeground       是否要背景
 * @param fontHeightInPoints 字體大小
 * @param isBold             字體是否加粗
 * @return HSSFCellStyle
 */
private HSSFCellStyle createCellStyle(HSSFWorkbook workbook, HorizontalAlignment align, boolean isBorder, boolean isForeground, int fontHeightInPoints, boolean isBold) {
    // 單元格樣式
    HSSFCellStyle cellStyle = workbook.createCellStyle();
    // 垂直居中
    cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
    // 水平方向設(shè)置
    cellStyle.setAlignment(align);
    // 是否設(shè)置邊框
    if (isBorder) {
        cellStyle.setBorderBottom(BorderStyle.MEDIUM);
        cellStyle.setBorderLeft(BorderStyle.MEDIUM);
        cellStyle.setBorderRight(BorderStyle.MEDIUM);
        cellStyle.setBorderTop(BorderStyle.MEDIUM);
    }
    // 是否設(shè)置前景
    if (isForeground) {
        cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.index);
    }
    // 字體
    Font font = workbook.createFont();
    font.setFontName("宋體");
    font.setFontHeightInPoints((short) fontHeightInPoints);
    // 字體是否加粗
    if (isBold) {
        font.setBold(true);
    }
    // 將字體設(shè)置添加到單元格樣式里面
    cellStyle.setFont(font);
    return cellStyle;
}
/**
 * 表單添加單元格范圍并且創(chuàng)建單元格設(shè)置文本及樣式
 *
 * @param firstRow   第一行的索引
 * @param lastRow    最后一行(包括)的索引,必須等于或大于firstRow
 * @param firstCol   第一列的索引
 * @param lastCol    最后一列(含)的索引,必須等于或大于firstCol
 * @param sheet      哪個表單
 * @param row        第幾行
 * @param cellNum    第幾個單元格
 * @param cellValue  單元格文本
 * @param cellStyle  單元格樣式
 * @param isBorder   是否要加邊框
 */
private void createCellRangeToSheetAndInsertCell(int firstRow, int lastRow, int firstCol, int lastCol, Sheet sheet, HSSFRow row, int cellNum, String cellValue, HSSFCellStyle cellStyle, boolean isBorder) {
    // 單元格范圍創(chuàng)建并設(shè)置
    CellRangeAddress region = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
    sheet.addMergedRegion(region);
    if (isBorder) {
        RegionUtil.setBorderBottom(BorderStyle.MEDIUM, region, sheet);
        RegionUtil.setBorderLeft(BorderStyle.MEDIUM, region, sheet);
        RegionUtil.setBorderRight(BorderStyle.MEDIUM, region, sheet);
        RegionUtil.setBorderTop(BorderStyle.MEDIUM, region, sheet);
    }
    // 單元格創(chuàng)建并設(shè)置
    HSSFCell cell = row.createCell(cellNum);
    cell.setCellValue(cellValue);
    cell.setCellStyle(cellStyle);
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-774307.html

到了這里,關(guān)于【Java】使用 HSSFWorkbook 生成 Excel 并導(dǎo)出步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java 導(dǎo)出Excel表格生成下拉框-EasyExcel
  • 接了個變態(tài)需求:生成 Excel + PDF 導(dǎo)出,用 Java 怎么實現(xiàn)?

    接了個變態(tài)需求:生成 Excel + PDF 導(dǎo)出,用 Java 怎么實現(xiàn)?

    Excel、PDF的導(dǎo)出、導(dǎo)入是我們工作中經(jīng)常遇到的一個問題,剛好今天公司業(yè)務(wù)遇到了這個問題,順便記個筆記以防下次遇到相同的問題而束手無策。 公司有這么兩個需求: 需求一 、給了一個表單,讓把查出來的數(shù)據(jù)組裝到表單中并且提供以PDF格式的下載功能。 需求二、 ?將

    2024年02月20日
    瀏覽(19)
  • Java使用POI導(dǎo)出Excel

    Java使用POI導(dǎo)出Excel

    在項目開發(fā)中往往需要使用到Excel的導(dǎo)入和導(dǎo)出,導(dǎo)入就是從Excel中導(dǎo)入到DB中,而導(dǎo)出就是從DB中查詢數(shù)據(jù)然后使用POI寫到Excel上。 操作Excel目前比較流行的就是 Apache POI 和阿里巴巴的 easyExcel ! 廢話不多說,開始擼起來?。?! POI官網(wǎng);https://poi.apache.org/ POI官網(wǎng)API:https://poi.

    2024年02月04日
    瀏覽(36)
  • 如何使用Java 實現(xiàn)excel模板導(dǎo)出---多sheet導(dǎo)出?

    如何使用Java 實現(xiàn)excel模板導(dǎo)出---多sheet導(dǎo)出?

    效果展示: maven依賴 相關(guān)工具類 **此處省略異常處理類 ExcelReportUtil 類 excel 接口 實現(xiàn)類 excel填充數(shù)據(jù)處理類 excel填充處理類 excel模板處理 實現(xiàn)關(guān)鍵代碼展示 通過模板實現(xiàn)導(dǎo)出功能 ExcelReportCreator 中的代碼 導(dǎo)入數(shù)據(jù)案例展示 excel模板批注案例 每個sheet頁都需要寫批注,通過批

    2024年02月15日
    瀏覽(24)
  • java實現(xiàn)excel的導(dǎo)出之使用easyExcel

    java實現(xiàn)excel的導(dǎo)出之使用easyExcel

    在我們的項目需求中,經(jīng)常會遇到導(dǎo)出的需求,其中excel的導(dǎo)出最為常見。生成Excel比較有名的框架有Apache poi,jxl等,但他們都存在一個嚴(yán)重的問題就是非常的耗內(nèi)存,如果你的系統(tǒng)并發(fā)量不大的話可能還行,但是一旦并發(fā)上來后一定會OOM或者JVM頻繁的full gc. EasyExcel是阿里巴巴

    2024年02月15日
    瀏覽(24)
  • 【Java】使用POI按模板樣式導(dǎo)出Excel

    根據(jù)模板樣式進(jìn)行excel導(dǎo)出。 首先,當(dāng)然是要有一個excel模板,excel的樣式用wps等進(jìn)行設(shè)置。 然后就是代碼的實現(xiàn)了,先引入POI的依賴: 然后就是實現(xiàn)方法里的代碼,首先定義響應(yīng)信息: 然后將excel模板轉(zhuǎn)為輸入流,這一步的實現(xiàn)方法有很多,具體選擇因人而異,我這里就舉

    2024年02月14日
    瀏覽(27)
  • Java——使用EasyExcel導(dǎo)出動態(tài)列的Excel

    多多點贊,會變好看! 多多留言,會變有錢! 有些時候列表的列可能是動態(tài)的,需要根據(jù)動態(tài)表頭導(dǎo)出Excel文件,這時候可以使用下面的方法解決: 靜態(tài)列導(dǎo)出代碼:

    2024年02月15日
    瀏覽(35)
  • Java中使用JXLS工具類導(dǎo)出復(fù)雜Excel表格

    Java中使用JXLS工具類導(dǎo)出復(fù)雜Excel表格

    前言 ? ?在項目開發(fā)中,我們會遇到各種文件導(dǎo)出的開發(fā)場景,但是這種情況并都不常用,于是本人將自己工作中所用的代碼封裝成工具類,旨在記錄工具類使用方法和技術(shù)分享。 一、Jxls的簡介 ? ?Jxls是一個簡單的、輕量級的excel導(dǎo)出庫,使用特定的標(biāo)記在excel模板文件中來

    2024年02月03日
    瀏覽(24)
  • Java使用poi導(dǎo)出excel針對不同數(shù)據(jù)列配置設(shè)置不同單元格格式(適用于通用導(dǎo)出excel數(shù)據(jù))

    Java使用poi導(dǎo)出excel針對不同數(shù)據(jù)列配置設(shè)置不同單元格格式(適用于通用導(dǎo)出excel數(shù)據(jù))

    公司大部分業(yè)務(wù)都是查詢相關(guān)的業(yè)務(wù), 所以建了一個項目專門做數(shù)據(jù)查詢, 數(shù)據(jù)中轉(zhuǎn)等抽象通用的業(yè)務(wù), 有一天給我安排了一個功能, 做excel導(dǎo)出, 配置好查詢sql和表頭字段映射后即可導(dǎo)出excel, 無需修改代碼 后來因為導(dǎo)出數(shù)據(jù)要求保留幾位小數(shù)或者轉(zhuǎn)換成百分比等設(shè)置單元格格

    2024年02月07日
    瀏覽(26)
  • JAVA:使用POI SXSSFWorkbook方式導(dǎo)出Excel大數(shù)據(jù)文件

    Apache POI 是用Java編寫的免費(fèi)開源的跨平臺的 Java API,Apache POI提供API給Java對Microsoft Office格式檔案讀和寫的功能。POI組件可以提供Java操作Microsoft Office的API,導(dǎo)出格式為Office 2003時POI調(diào)用的HSSF包,導(dǎo)出格式為Office 2007時,調(diào)用XSSF包,而SXSSF包是POI3.8版本之上對XSSF的一個擴(kuò)展,用

    2024年02月11日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包