国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

EasyExcel碰到問題記錄

京東云 ? 來源:京東工業(yè) 孫磊 ? 作者:京東工業(yè) 孫磊 ? 2025-01-13 13:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:京東工業(yè) 孫磊

1、富文本中文字設(shè)置不同顏色和字體不生效

                String stringCellValue = cell.getStringCellValue();
                if (StringUtils.isNotBlank(stringCellValue) && stringCellValue.contains(startIndex) && stringCellValue.contains(endIndex)) {
                    RichTextString richStringCellValue = cell.getRichStringCellValue();
                    Font redFont = workbook.createFont();
                    redFont.setColor(IndexedColors.RED.getIndex());

                    if (richStringCellValue instanceof XSSFRichTextString) {
                        XSSFRichTextString xssfRichTextString = new XSSFRichTextString(cell.getStringCellValue());
                        xssfRichTextString.applyFont(stringCellValue.indexOf(startIndex),stringCellValue.indexOf(endIndex) +endIndex.length() ,redFont);
                        cell.setCellValue(xssfRichTextString);
                    } else if (richStringCellValue instanceof HSSFRichTextString) {
                        HSSFRichTextString hssfRichTextString = new HSSFRichTextString(cell.getStringCellValue());
                        hssfRichTextString.applyFont(stringCellValue.indexOf(startIndex),stringCellValue.indexOf(endIndex) +endIndex.length() ,redFont);
                        cell.setCellValue(hssfRichTextString);
                    }
                    cellStyle.setFont(redFont);
                } else {
                    // 清空樣式
                    cell.setCellStyle(cellStyle);
                }

上面代碼設(shè)置了富文本指定范圍的文字設(shè)置新的字體,但是生成的文件還是不生效。

EasyExcelFactory.write(new File(pathName)).head(titleList())
        .inMemory(Boolean.TRUE)  // 指定這個屬性為true,才支持富文本和注釋
        .registerWriteHandler(new HeadRowWriteHandler()).sheet(0).doWrite(Lists.newArrayList());

原因:

在 EasyExcel 中,inMemory 方法用于設(shè)置是否在內(nèi)存中生成 Excel 文件。默認(rèn)情況下,EasyExcel 會在磁盤上創(chuàng)建一個緩存文件,然后將數(shù)據(jù)寫入這個緩存文件,最后再將緩存文件寫入到 Excel 文件中。

如果你調(diào)用 inMemory(true),EasyExcel 將會在內(nèi)存中生成 Excel 文件,而不是使用緩存文件。這意味著:

1.更快的寫入速度:因為不需要頻繁地讀寫磁盤,內(nèi)存模式下的寫入速度通常會更快。

2.支持 Comment 和 RichTextString:如果你需要在單元格中添加注釋或使用富文本字符串,這些功能只能在內(nèi)存模式下使用。

3.限制大文件寫入:內(nèi)存模式下,所有的數(shù)據(jù)都會被加載到內(nèi)存中,這可能會導(dǎo)致內(nèi)存溢出問題,特別是當(dāng)你處理大型數(shù)據(jù)集時。

使用內(nèi)存模式的主要優(yōu)點是它可以支持更復(fù)雜的單元格操作,如添加注釋或使用富文本字符串。然而,如果你的數(shù)據(jù)量很大,可能需要避免使用內(nèi)存模式以防止內(nèi)存問題。

?

2、凍結(jié)單元格

可以通過sheet.createFreezePane(column,row);方法指定凍結(jié)的列和行索引

import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
import org.apache.poi.ss.usermodel.Sheet;

import java.util.Objects;

/**
 * 凍結(jié)單元格
 **/
public class FreezePaneWriteHandler implements SheetWriteHandler {

    private int column;

    private int row;

    public FreezePaneWriteHandler(Integer column, Integer row) {
        this.column = column;
        this.row = row;
    }

    @Override
    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
        Sheet sheet = writeSheetHolder.getSheet();
        if (Objects.nonNull(sheet)) {
            sheet.createFreezePane(column,row);
        }
    }
}

3、不合并單元格

Easyexcel使用中,生成多行表頭模版時,同一行如果多個列內(nèi)容一樣,會被自動合并單元格,要避免這個問題,需要通過特殊處理。

import com.alibaba.excel.constant.OrderConstant;
import com.alibaba.excel.write.handler.RowWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;

import java.util.Set;

/**
 * 表頭不合并策略
 * @author sunlei61
 * @date 2024/8/17
 **/
public class HeadNoMergeWriteHandler implements RowWriteHandler {
    /**
     * 指定哪些行需要合并單元格
     */
    private Set rowNum;
    /**
     * 排除哪些不合并單元格的行
     */
    private Set excludeRowNum;

    @Override
    public int order() {
        return OrderConstant.FILL_STYLE + 3;
    }

    public HeadNoMergeWriteHandler(){}

    public HeadNoMergeWriteHandler(Set rowNum){
        this.rowNum = rowNum;
    }

    public HeadNoMergeWriteHandler(Set rowNum, Set excludeRowNum){
        this.rowNum = rowNum;
        this.excludeRowNum = excludeRowNum;
    }

    @Override
    public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer relativeRowIndex, Boolean isHead) {
       if (!isHead){
           return;
       }

        if (CollectionUtils.isEmpty(rowNum) || rowNum.contains(row.getRowNum())) {
            // 如果是表頭,取消合并
            Sheet sheet = writeSheetHolder.getSheet();
            int totalMergedRegions = sheet.getNumMergedRegions();
            for (int i = totalMergedRegions - 1; i >= 0; i--) {
                CellRangeAddress mergedRegion = sheet.getMergedRegion(i);
                if (CollectionUtils.isEmpty(excludeRowNum) || !excludeRowNum.contains(mergedRegion.getFirstRow())) {
                    sheet.removeMergedRegion(i);
                }
            }
        }
    }
}

4、列寬自適應(yīng)寬度

生成表格列比較多,制定特定的寬度會讓表格很長,即使單元格內(nèi)容一個字,也會很寬,不是很友好,可以通過設(shè)置sheet的自適應(yīng)寬度來設(shè)置。

import com.alibaba.excel.write.handler.RowWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;

import java.util.Set;

/**
 * 列寬度自動適應(yīng)
 * @author sunlei61
 * @date 2024/9/26
 **/
public class AutoSizeColumnWriterHandler implements RowWriteHandler {
    /**不需要自動適用寬度的列集合*/
    private Set excludeColumns;

    public AutoSizeColumnWriterHandler(){
    }

    public AutoSizeColumnWriterHandler(Set excludeColumns) {
       this.excludeColumns = excludeColumns;
    }

    @Override
    public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer relativeRowIndex, Boolean isHead) {
        Integer sheetNo = writeSheetHolder.getSheetNo();
        if (sheetNo == 0 ) {
            Sheet sheet = writeSheetHolder.getSheet();
            int columns = row.getPhysicalNumberOfCells();
            for (int i = 0; i < columns; i++) {
                if (CollectionUtils.isNotEmpty(excludeColumns) && excludeColumns.contains(i)) {
                    continue;
                }
                sheet.autoSizeColumn(i);
            }
        }
    }
}

審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Excel
    +關(guān)注

    關(guān)注

    4

    文章

    231

    瀏覽量

    57698
  • 富文本
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1585
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    暫態(tài)事件記錄的重復(fù)觸發(fā)抑制是如何實現(xiàn)的?

    暫態(tài)事件記錄的重復(fù)觸發(fā)抑制通過 觸發(fā)抑制時間(死區(qū)時間) 、 遲滯閾值 、 事件分級獨立設(shè)置 和 事件驗證機(jī)制 四大核心技術(shù)實現(xiàn),確保同一暫態(tài)事件不被重復(fù)記錄,同時保證真實事件完整捕捉。 一、核心
    的頭像 發(fā)表于 12-10 18:01 ?1879次閱讀
    暫態(tài)事件<b class='flag-5'>記錄</b>的重復(fù)觸發(fā)抑制是如何實現(xiàn)的?

    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)事件記錄的事件記錄容量是多少?

    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)事件記錄容量分為 事件臺賬容量 (僅記錄事件關(guān)鍵參數(shù))和 波形記錄容量 (完整記錄事件波形數(shù)據(jù))兩類,容量大小與設(shè)備等級、存儲配置密切相關(guān),且普遍支持外部存儲
    的頭像 發(fā)表于 12-10 17:50 ?1270次閱讀
    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)事件<b class='flag-5'>記錄</b>的事件<b class='flag-5'>記錄</b>容量是多少?

    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)事件記錄的觸發(fā)頻率是多少?

    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)事件記錄 "觸發(fā)頻率" 需從三個維度理解: 觸發(fā)響應(yīng)時間 (裝置檢測速度)、 事件記錄容量 (單位時間可記錄數(shù)量)和 重復(fù)觸發(fā)抑制 (避免重復(fù)記錄),不同維度
    的頭像 發(fā)表于 12-10 17:29 ?1226次閱讀
    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)事件<b class='flag-5'>記錄</b>的觸發(fā)頻率是多少?

    為進(jìn)行檢測溫度的記錄,可使用串口數(shù)據(jù)記錄模塊來實現(xiàn)

    為進(jìn)行檢測溫度的記錄,可使用串口數(shù)據(jù)記錄模塊來實現(xiàn)。 該數(shù)據(jù)記錄模塊是一種串口設(shè)備,在使用時其工作的波特率為9600bps,在接收到開發(fā)板所發(fā)送的數(shù)據(jù)時,就將數(shù)據(jù)完整地記錄到TF卡的文
    發(fā)表于 12-01 08:18

    MCU單片機(jī)串口數(shù)據(jù)記錄儀方案

    在工業(yè)控制、環(huán)境監(jiān)測、物流追蹤等眾多領(lǐng)域,如何可靠、便捷地記錄設(shè)備串口數(shù)據(jù)成為不少工程師關(guān)注的焦點。基于MCU單片機(jī)的串口數(shù)據(jù)記錄儀方案,正以其高效集成、靈活存儲和簡便操作的特點,成為數(shù)據(jù)采集與記錄場景中的理想選擇。
    的頭像 發(fā)表于 11-27 15:02 ?320次閱讀

    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)記錄容量是如何規(guī)定的?

    電能質(zhì)量在線監(jiān)測裝置暫態(tài)記錄容量規(guī)定 一、國標(biāo) GB/T 19862-2016 核心規(guī)定 1. 單次暫態(tài)事件記錄長度要求 A 級精度設(shè)備 :記錄事件前 至少 5 個周波 (約 100ms
    的頭像 發(fā)表于 11-26 16:37 ?1289次閱讀
    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)<b class='flag-5'>記錄</b>容量是如何規(guī)定的?

    電能質(zhì)量在線監(jiān)測裝置的報警記錄可以導(dǎo)出嗎?

    電能質(zhì)量在線監(jiān)測裝置的報警記錄支持多種方式導(dǎo)出,具體操作取決于設(shè)備類型、存儲配置及管理需求。以下是結(jié)合硬件特性、行業(yè)標(biāo)準(zhǔn)及實際案例的詳細(xì)指南: 一、本地導(dǎo)出:直接通過設(shè)備或外接存儲 1. 設(shè)備面板
    的頭像 發(fā)表于 11-05 13:46 ?511次閱讀

    行車記錄儀UKCA認(rèn)證申請

    行車記錄儀(Car DVR / Dash Cam)出口英國時,需要符合英國的 UKCA(UK Conformity Assessed)認(rèn)證 要求。UKCA 是英國脫歐后取代 CE 的合格標(biāo)志,證明產(chǎn)品符合英國相關(guān)法規(guī)和技術(shù)標(biāo)準(zhǔn)。以下是行車記錄儀辦理 UKCA 認(rèn)證的詳細(xì)介
    的頭像 發(fā)表于 10-23 14:26 ?410次閱讀
    行車<b class='flag-5'>記錄</b>儀UKCA認(rèn)證申請

    溫度循環(huán)測試后如何進(jìn)行數(shù)據(jù)記錄和分析?

    溫度循環(huán)測試后的數(shù)據(jù)記錄和分析是驗證電能質(zhì)量在線監(jiān)測裝置精度穩(wěn)定性、功能完整性、硬件可靠性的核心環(huán)節(jié),需圍繞 “數(shù)據(jù)溯源可查、分析邏輯閉環(huán)、結(jié)論依據(jù)充分” 展開,結(jié)合測試標(biāo)準(zhǔn)(IEC
    的頭像 發(fā)表于 09-26 14:22 ?530次閱讀

    車載CAN-Bus數(shù)據(jù)記錄儀配置講解視頻#三格電子

    記錄
    三格電子科技
    發(fā)布于 :2025年08月08日 10:25:14

    車載CAN-Bus數(shù)據(jù)記錄儀#三格電子

    記錄
    三格電子科技
    發(fā)布于 :2025年08月07日 11:37:01

    車載 CAN-Bus 數(shù)據(jù)記錄

    車載CAN-Bus數(shù)據(jù)記錄儀 型號:SG-CAN-200R 產(chǎn)品概述 CAN 總線故障排查中,對于偶發(fā)性的故障排查非常棘手,工程師很難再次復(fù)現(xiàn)故障現(xiàn)場。 SG-CAN-200R 記錄儀就相當(dāng)于
    的頭像 發(fā)表于 07-15 14:13 ?715次閱讀
    車載 CAN-Bus 數(shù)據(jù)<b class='flag-5'>記錄</b>儀

    淺談射頻同軸連接器的失效原因

    同軸產(chǎn)品在使用中總會碰到問題,可能涉及到連接器也可能涉及到安裝的電纜,本期將圍繞總結(jié)3個大點8種同軸連接的失效原因,并對不同問題分別進(jìn)行解析。
    的頭像 發(fā)表于 06-04 10:00 ?1819次閱讀

    從人工記錄到智能巡檢:云翎智能單北斗記錄儀如何重塑電力巡檢

    從人工記錄到智能巡檢,云翎智能單北斗記錄儀以其高精度定位、實時數(shù)據(jù)傳輸與智能管理能力,徹底重塑了電力設(shè)施的檢查流程。通過北斗衛(wèi)星導(dǎo)航系統(tǒng)的核心技術(shù)優(yōu)勢,云翎智能單北斗記錄儀實現(xiàn)了對電力巡檢人員的精準(zhǔn)
    的頭像 發(fā)表于 04-03 14:58 ?827次閱讀
    從人工<b class='flag-5'>記錄</b>到智能巡檢:云翎智能單北斗<b class='flag-5'>記錄</b>儀如何重塑電力巡檢

    如何操作電子溫濕度記錄

    電子溫濕度記錄儀是一種常用的記錄儀產(chǎn)品類型,選用進(jìn)口傳感器、進(jìn)口高能鋰電池供電,采用低功耗技術(shù)設(shè)計,可以外接電源供電,體積小巧,整機(jī)功耗小,精度高。被廣泛用于工業(yè)、環(huán)保、衛(wèi)生防疫、倉儲運輸、博物館等
    的頭像 發(fā)表于 03-25 10:39 ?1449次閱讀
    如何操作電子溫濕度<b class='flag-5'>記錄</b>儀