10

Excelでセルの特定のテキストの色を変更する方法を知っている人はいますか? 私はApache poiを使用していますが、セル全体のテキストの色を変更することがわかりました。しかし、特定のテキストだけが必要です。

例: セル A1 には Hello World があります。「Hello」を青、「World」を緑にしたいとします。どうすればいいですか?

4

2 に答える 2

15

重要なのは、HSSFRichTextStringオブジェクトを使用してセルの値を設定することです。このオブジェクトには、 startingIndex、endingIndex、およびFontを受け入れるapplyFontメソッドがあります。したがって、必要な色のフォントを作成し、applyFont()を使用してセル値の一部に適用できます。

これが私が一緒に石畳にしたいくつかのサンプルコードです(完全にテストされていません):

// Set up a rudimentary worksheet with a cell in it
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(“sheet1”);
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);

// Set up fonts
HSSFFont blueFont = workbook.createFont();
blueFont.setColor(HSSFColor.BLUE.index);

HSSFFont greenFont = workbook.createFont();
greenFont.setColor(HSSFColor.GREEN.index);

// create a cell style and assign the first font to it
HSSFCellStyle style = workbook.createCellStyle();
style.setFont(blueFont);

// assign the style to the cell
cell.setCellStyle(style);

// override the parts of the text that you want to
// color differently by applying a different font.
HSSFRichTextString richString = new HSSFRichTextString("Hello, World!");
richString.applyFont(6, 13, greenFont);
cell.setCellValue(richString);
于 2013-03-17T03:02:08.777 に答える
-1

最初にスタイルを作成します

//////////////////////Excel Header Style/////////////////////////   
        HSSFCellStyle headerlabelcs = wb.createCellStyle();
        headerlabelcs.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
        headerlabelcs.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        headerlabelcs.setBorderLeft((short)1);
        headerlabelcs.setBorderRight((short)1);

        HSSFFont headerlabelfont = wb.createFont();
        headerlabelfont.setFontHeightInPoints((short)12);
        headerlabelfont.setFontName("Calibri");
        headerlabelfont.setColor(HSSFColor.BLACK.index);
        headerlabelfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        headerlabelcs.setFont(headerlabelfont); 
                //////////////////////Excel Header Style/////////////////////////   

追加すると、この行がコードに追加されます

sheet.getRow(rowIndex).getCell(0).setCellStyle(headerlabelcs);
于 2013-03-18T09:51:01.290 に答える