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

【Java】使用POI按模板樣式導出Excel

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

一、場景

根據(jù)模板樣式進行excel導出。

二、實現(xiàn)

首先,當然是要有一個excel模板,excel的樣式用wps等進行設置。
然后就是代碼的實現(xiàn)了,先引入POI的依賴:

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>

然后就是實現(xiàn)方法里的代碼,首先定義響應信息:

		HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
		// 設置響應類型
		response.setContentType("application/vnd.ms-excel");
		// 設置字符編碼
		response.setCharacterEncoding("utf-8");
		// 設置響應頭信息
		response.setHeader("Content-Disposition", "attachment; filename="文件名.xlsx", "utf-8"));

然后將excel模板轉為輸入流,這一步的實現(xiàn)方法有很多,具體選擇因人而異,我這里就舉一個例子:

		org.springframework.core.io.Resource resource = new ClassPathResource("templates/文件名.xlsx");
		@Cleanup InputStream inputStream = resource.getInputStream();
		ServletOutputStream outputStream = response.getOutputStream();

然后獲取excel模板數(shù)據(jù):

		XSSFWorkbook workbook = new XSSFWorkbook(inputStream); // 傳入上一步轉換的輸入流
		Sheet sheet = workbook.getSheetAt(0); // 拿到excel模板的sheet頁

我們得到excel模板數(shù)據(jù)后,肯定不是原模原樣導出,否則直接io輸出就好了。接下來就是操作excel模板數(shù)據(jù),將它構造為我們要導出的excel,我這里僅組合一些常用的操作,具體操作根據(jù)個人情況自行組合:

	/**
	 * 修改某單元格的值,先獲取y行再獲取y行的x列,然后修改值
	 *
	 * x(列,從0開始計數(shù))
	 * y(行,從0開始計數(shù))
	 * value(修改值)
	 */
	sheet.getRow(y).getCell(x).setCellValue(value);

	/**
	 * 插入n行,首先用shiftRows方法將插入位置后面的數(shù)據(jù)都向下移動n行
	 * 然后循環(huán)用createRow方法構造當前行,并用setHeightInPoints方法設置行高
	 * 最后循環(huán)用createCell方法構造當前行的列
	 *
	 * startRow(插入位置的下一行,從0開始計數(shù))
	 * endRow(excel表末尾行,從0開始計數(shù))
	 * startColumn(插入行的開始列,從0開始計數(shù))
	 * endColumn(插入行的結束列,從0開始計數(shù))
	 * rowNum(插入行數(shù))
	 * rowHeight(插入行高)
	 */
	sheet.shiftRows(startRow, endRow, rowNum, true, false);
	for (int i = 0; i < rowNum; i++) {
		Row itemRow = sheet.createRow(startRow + i);
		itemRow.setHeightInPoints(rowHeight);
		for (int j = startColumn; j < endColumn + 1; j++) {
			itemRow.createCell(j);
		}
	}

	/**
	 * 得到某單元格的樣式,先獲取y行再獲取y行的x列,然后得到樣式
	 *
	 * x(列,從0開始計數(shù))
	 * y(行,從0開始計數(shù))
	 */
	 CellStyle style = sheet.getRow(y).getCell(x).getCellStyle();

	/**
	 * 修改某單元格的樣式,先獲取y行再獲取y行的x列,然后修改樣式
	 *
	 * x(列,從0開始計數(shù))
	 * y(行,從0開始計數(shù))
	 * style(修改樣式)
	 */
	 sheet.getRow(y).getCell(x).setCellStyle(style);

	/**
	 * 合并單元格
	 *
	 * startRow(開始行,從0開始計數(shù))
	 * endRow(結束行,從0開始計數(shù))
	 * startColumn(開始列,從0開始計數(shù))
	 * endColumn(結束列,從0開始計數(shù))
	 */
	 sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, startColumn, endColumn));

最后輸出excel:文章來源地址http://www.zghlxwxcb.cn/news/detail-629472.html

	 workbook.write(outputStream);

三、總結

  1. 將excel表抽象為xy軸坐標圖,更易于理解POI的操作,y軸對應行,x軸對應列,每個單元格都有一個xy坐標。
  2. 單元格才是實際可操作的對象,行和列都只是用來定位單元格位置的。所以新增行后都要根據(jù)列數(shù)進行循環(huán),來新增單元格。
  3. 新增的單元格都不具備任何樣式,可以獲取其他單元格的樣式進行賦予。
  4. 如果不涉及對模板新增行、新增列等操作,那修改一下單元格的值就夠用了,畢竟單元格樣式完全可以在wps先設置好。

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

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

領支付寶紅包贊助服務器費用

相關文章

  • Poi實現(xiàn)根據(jù)word模板導出-圖表篇

    Poi實現(xiàn)根據(jù)word模板導出-圖表篇

    往期系列傳送門: Poi實現(xiàn)根據(jù)word模板導出-文本段落篇 (需要完整代碼的直接看最后位置?。。。?前言: 補充Word中圖表的知識: 每個圖表在word中都有一個內(nèi)置的Excel,用于操作數(shù)據(jù)。 內(nèi)置Excel有類別、系列、值三個概念: poi可以獲取word中的圖表對象,通過這個圖表對象來

    2024年02月02日
    瀏覽(36)
  • 使用EasyPoi實現(xiàn)Excel的按模板樣式導出

    使用EasyPoi實現(xiàn)Excel的按模板樣式導出

    1690342020350導出測試.xlsx 如下 #fe 使用#fe命令可以實現(xiàn)集合數(shù)據(jù)的橫向拓展,比如模板代碼是 導出的excel里面就會顯示會自當前列,向右拓展,效果可參見下面的導出文件截圖 v_fe 使用v_fe命令可以實現(xiàn)不固定列的橫向遍歷,比如模板代碼是 分數(shù) ID {{#fe:maths t.score t.id}} 這種情況

    2024年02月15日
    瀏覽(27)
  • Android 基于POI庫,根據(jù)模板導出word文檔

    Android 基于POI庫,根據(jù)模板導出word文檔

    由于項目需求,需要根據(jù)用戶提供的word模板,填充動態(tài)內(nèi)容生成新的word,為了記錄自己的踩坑日記,記錄一下。 Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程序?qū)ξ臋n讀和寫的功能。 這里給出官網(wǎng)鏈接-POI官網(wǎng),同時下載版本也在官網(wǎng)鏈接中,可

    2024年01月18日
    瀏覽(23)
  • ExcelExportUtil基于模板導出excel&POI導出excel

    第一步,導入依賴沒啥好說的; 第二步,查詢數(shù)據(jù)庫或es數(shù)據(jù)組裝成list對象; 第三步,填充MapString, Object excelMap = new HashMap(); 數(shù)據(jù)key和excel模板對應,如果一次導出多個,可以用index區(qū)分; 第一步,導入依賴 第二步,上圖哈哈 就是這么簡單 沒了

    2024年02月12日
    瀏覽(21)
  • Java使用POI導出Excel

    Java使用POI導出Excel

    在項目開發(fā)中往往需要使用到Excel的導入和導出,導入就是從Excel中導入到DB中,而導出就是從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日
    瀏覽(35)
  • java中使用POI生成Excel并導出

    java中使用POI生成Excel并導出

    注:本文章中代碼均為本地Demo版本,若后續(xù)代碼更新將不會更新文章 根據(jù)從數(shù)據(jù)庫查詢出的數(shù)據(jù),將其寫入excel表并導出 我的想法是通過在實體屬性上寫自定義注解的方式去完成。因為我們在代碼中可以通過反射的方式去獲取實體類中全部的注解及屬性名稱等等。我們可以

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

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

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

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

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

    2024年02月07日
    瀏覽(26)
  • jxls根據(jù)模板導出Excel(二)

    jxls根據(jù)模板導出Excel(二)

    說明:本文是jxls根據(jù)模板導出Excel直接下載。 使用版本:jxls V2.10.0 excel模板版本:.xlsx格式 jxls官網(wǎng)地址:https://jxls.sourceforge.net/index.html 1、pom引用 2、Controller調(diào)用方法 3、拼接數(shù)據(jù) 4、Excel導出方法 5、Excel模板,創(chuàng)建xlsx格式模板 添加批注,第一個單元格添加范圍批注,jx:ar

    2024年02月09日
    瀏覽(21)
  • 工具類——Java導出EXCEL2(設置樣式、加載并填充圖片、加載指定模板、大數(shù)據(jù)量設置窗口大小與刷新頻率)

    工具類——Java導出EXCEL2(設置樣式、加載并填充圖片、加載指定模板、大數(shù)據(jù)量設置窗口大小與刷新頻率)

    書接上篇:工具類——Java 瀏覽器導入、導出Excel(Java import、export)demo POI的導出方式:創(chuàng)建/加載Workbook,設置樣式,填充數(shù)據(jù),然后生成本地臨時文件,最終以瀏覽器的形式打開,完成整個導出動作。 demo如下, demo如下, XSSFClientAnchor anchor = new XSSFClientAnchor(int dx1, int dy1,

    2024年02月01日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包