/* ==================================================================== | |
Licensed to the Apache Software Foundation (ASF) under one or more | |
contributor license agreements. See the NOTICE file distributed with | |
this work for additional information regarding copyright ownership. | |
The ASF licenses this file to You under the Apache License, Version 2.0 | |
(the "License"); you may not use this file except in compliance with | |
the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
==================================================================== */ | |
package org.apache.poi.ss.examples; | |
import java.io.File; | |
import org.apache.poi.hssf.usermodel.HSSFFont; | |
import org.apache.poi.hssf.usermodel.HSSFWorkbook; | |
import org.apache.poi.hssf.util.HSSFColor; | |
import org.apache.poi.ss.usermodel.Cell; | |
import org.apache.poi.ss.usermodel.CellStyle; | |
import org.apache.poi.ss.usermodel.Color; | |
import org.apache.poi.ss.usermodel.DataFormatter; | |
import org.apache.poi.ss.usermodel.Font; | |
import org.apache.poi.ss.usermodel.Row; | |
import org.apache.poi.ss.usermodel.Sheet; | |
import org.apache.poi.ss.usermodel.Workbook; | |
import org.apache.poi.ss.usermodel.WorkbookFactory; | |
import org.apache.poi.ss.util.CellReference; | |
import org.apache.poi.xssf.usermodel.XSSFColor; | |
import org.apache.poi.xssf.usermodel.XSSFFont; | |
/** | |
* Demonstrates how to read excel styles for cells | |
*/ | |
public class CellStyleDetails { | |
public static void main(String[] args) throws Exception { | |
if(args.length == 0) { | |
throw new IllegalArgumentException("Filename must be given"); | |
} | |
Workbook wb = WorkbookFactory.create(new File(args[0])); | |
DataFormatter formatter = new DataFormatter(); | |
for(int sn=0; sn<wb.getNumberOfSheets(); sn++) { | |
Sheet sheet = wb.getSheetAt(sn); | |
System.out.println("Sheet #" + sn + " : " + sheet.getSheetName()); | |
for(Row row : sheet) { | |
System.out.println(" Row " + row.getRowNum()); | |
for(Cell cell : row) { | |
CellReference ref = new CellReference(cell); | |
System.out.print(" " + ref.formatAsString()); | |
System.out.print(" (" + cell.getColumnIndex() + ") "); | |
CellStyle style = cell.getCellStyle(); | |
System.out.print("Format=" + style.getDataFormatString() + " "); | |
System.out.print("FG=" + renderColor(style.getFillForegroundColorColor()) + " "); | |
System.out.print("BG=" + renderColor(style.getFillBackgroundColorColor()) + " "); | |
Font font = wb.getFontAt( style.getFontIndex() ); | |
System.out.print("Font=" + font.getFontName() + " "); | |
System.out.print("FontColor="); | |
if(font instanceof HSSFFont) { | |
System.out.print( renderColor( ((HSSFFont)font).getHSSFColor((HSSFWorkbook)wb)) ); | |
} | |
if(font instanceof XSSFFont) { | |
System.out.print( renderColor( ((XSSFFont)font).getXSSFColor()) ); | |
} | |
System.out.println(); | |
System.out.println(" " + formatter.formatCellValue(cell)); | |
} | |
} | |
System.out.println(); | |
} | |
wb.close(); | |
} | |
private static String renderColor(Color color) { | |
if(color instanceof HSSFColor) { | |
return ((HSSFColor)color).getHexString(); | |
} else if(color instanceof XSSFColor) { | |
return ((XSSFColor)color).getARGBHex(); | |
} else { | |
return "(none)"; | |
} | |
} | |
} |