第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

APACHE POI 4.1:從十六進(jìn)制代碼設(shè)置單元格背景顏色

APACHE POI 4.1:從十六進(jìn)制代碼設(shè)置單元格背景顏色

qq_笑_17 2024-01-05 14:56:23
我嘗試了堆棧溢出上發(fā)布的不同解決方案,將背景顏色應(yīng)用于 Apache POI 生成的單元格,但沒(méi)有任何效果。我正在做類似的事情:Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet(sheetName);XSSFCellStyle cellStyle = ((XSSFCellStyle) workbook.createCellStyle());if (styleObject.getBgColor() != null) {    java.awt.Color javaBdgColor = java.awt.Color.decode(voceStyle.getBgColor()); // this is #FFF000    XSSFColor bgColor = new XSSFColor(javaBdgColor, new DefaultIndexedColorMap());    cellStyle.setFillForegroundColor(bgColor.getIndex());    cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);}Row newRow = Rowsheet.createRow(0);Cell newCell = newRow.createCell(0);newCell.setCellStyle(cellStyle);// write fileString pathFileExport = buildPathExportFile("test-export");FileOutputStream fileOut = new FileOutputStream(pathFileExport);workbook.write(fileOut);fileOut.close();//close workbookworkbook.close();return Paths.get(pathFileExport);我認(rèn)為我的代碼中一切正常,但每個(gè)像這樣樣式的單元格都會(huì)導(dǎo)致黑色背景。我對(duì)在沒(méi)有字段的調(diào)試結(jié)果期間的“DefaultIndexedColorMap”實(shí)例有一些疑問(wèn):此時(shí),我不確定要做什么來(lái)解決。其他帖子中的每個(gè)人似乎都能正常工作,但我仍然得到深色背景而不是黃色。有什么建議么?提前致謝!
查看完整描述

2 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

正如另一個(gè)答案所說(shuō),在自定義顏色時(shí),需要使用setFillForegroundColor(XSSFColor color)而不是使用索引顏色。但是也可以使用org.apache.poi.ss.usermodel.IndexedColorsXSSFCellStyle中的索引顏色。如果不需要使用自定義顏色,這將是最兼容的方式。XSSF

但也應(yīng)該避免創(chuàng)建XSSFColorfrom 。java.awt.Color構(gòu)造函數(shù)XSSFColor(java.awt.Color clr, IndexedColorMap map)被標(biāo)記為“僅測(cè)試”。并且java.awt.Color在某些情況下將不可用。

因此,如果需要“從十六進(jìn)制代碼設(shè)置單元格背景顏色”并且十六進(jìn)制代碼位于 a 中String,org.apache.commons.codec.binary.Hex則可用于byte[]從中獲取數(shù)組StringApache commons codec已經(jīng)是 的依賴項(xiàng)之一apache poi。然后?可以使用構(gòu)造函數(shù)XSSFColor(byte[] rgb, IndexedColorMap colorMap) 。IndexedColorMap到目前為止還沒(méi)有使用。這樣就可以設(shè)置了null。如果IndexedColorMap以后有任何使用,那么無(wú)論如何都必須調(diào)整代碼。

例子:

import java.io.FileOutputStream;

import org.apache.poi.ss.usermodel.*;

import org.apache.poi.xssf.usermodel.*;


import org.apache.commons.codec.binary.Hex;


class CreateXSSFColor {


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


? try (Workbook workbook = new XSSFWorkbook();?

? ? ? ?FileOutputStream fileout = new FileOutputStream("Excel.xlsx") ) {


? ?String rgbS = "FFF000";

? ?byte[] rgbB = Hex.decodeHex(rgbS); // get byte array from hex string

? ?XSSFColor color = new XSSFColor(rgbB, null); //IndexedColorMap has no usage until now. So it can be set null.


? ?XSSFCellStyle cellStyle = (XSSFCellStyle) workbook.createCellStyle();

? ?cellStyle.setFillForegroundColor(color);

? ?cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);


? ?Sheet sheet = workbook.createSheet();?

? ?Row row = sheet.createRow(0);

? ?Cell cell = row.createCell(0);

? ?cell.setCellValue("yellow");

? ?cell.setCellStyle(cellStyle);


? ?workbook.write(fileout);

? }


?}

}


查看完整回答
反對(duì) 回復(fù) 2024-01-05
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

我注意到,在處理 xlsx 文件 (XSSF) 中的顏色時(shí),使用索引顏色效果不太好。默認(rèn)情況下,似乎沒(méi)有任何顏色的索引XSSFWorkbook,因此您不能使用未索引的顏色索引。

但是,您可以使用直接采用setFillForegroundColorXSSFColor.

cellStyle.setFillForegroundColor(bgColor);

當(dāng)我使用此重載時(shí),我會(huì)得到您期望的黃色作為背景。

通常,在 XSSF 中使用顏色時(shí),您應(yīng)該使用其XSSFColor本身而不是其索引。這也適用于其他事物,例如其他圖案顏色(“背景”)、邊框顏色和字體顏色。


查看完整回答
反對(duì) 回復(fù) 2024-01-05
  • 2 回答
  • 0 關(guān)注
  • 777 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)