All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.alpharogroup.export.excel.poi.ExcelPoiFactory Maven / Gradle / Ivy

There is a newer version: 5.7
Show newest version
/**
 * The MIT License
 *
 * Copyright (C) 2007 Asterios Raptis
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
package de.alpharogroup.export.excel.poi;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.WorkbookUtil;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import de.alpharogroup.check.Check;

/**
 * Factory class for create poi objects.
 */
public class ExcelPoiFactory
{

	/**
	 * Creates a new CellStyle from the given parameters.
	 *
	 * @param workbook
	 *            the workbook
	 * @param fontName
	 *            the font name
	 * @param boldweight
	 *            the boldweight
	 * @param height
	 *            the height
	 * @return the cell style
	 */
	public static CellStyle newCellStyle(final Workbook workbook, final String fontName,
		final short boldweight, final short height)
	{
		final CellStyle boldFontCellStyle = workbook.createCellStyle();
		boldFontCellStyle.setFont(newFont(workbook, fontName, boldweight, height));
		return boldFontCellStyle;
	}

	/**
	 * Creates a new CellStyle with the given date format.
	 *
	 * @param workbook
	 *            the workbook
	 * @param dateFormat
	 *            the date format
	 * @return the cell style
	 */
	public static CellStyle newDateCellStyle(final Workbook workbook, final String dateFormat)
	{
		final CellStyle dateCellStyle = workbook.createCellStyle();
		dateCellStyle.setDataFormat(workbook.getCreationHelper().createDataFormat()
			.getFormat(dateFormat));
		return dateCellStyle;
	}

	/**
	 * Creates a new font from the given parameters.
	 *
	 * @param workbook
	 *            the workbook
	 * @param fontName
	 *            the font name
	 * @param boldweight
	 *            the boldweight
	 * @param height
	 *            the height
	 * @return the font
	 */
	public static Font newFont(final Workbook workbook, final String fontName,
		final short boldweight, final short height)
	{
		final Font font = workbook.createFont();
		font.setFontName(fontName);
		font.setBoldweight(boldweight);
		font.setFontHeightInPoints(height);
		return font;
	}

	/**
	 * Creates a new HSSFWorkbook from the given file.
	 *
	 * @param file
	 *            the file name
	 * @return the Workbook
	 * @throws IOException
	 *             Signals that an I/O exception has occurred.
	 */
	public static Workbook newHSSFWorkbook(final File file) throws IOException
	{
		return writeWorkbook(new HSSFWorkbook(), file);
	}

	/**
	 * Creates a new HSSFWorkbook from the given file name.
	 *
	 * @param pathname
	 *            the file name
	 * @return the Workbook
	 * @throws IOException
	 *             Signals that an I/O exception has occurred.
	 */
	public static Workbook newHSSFWorkbook(final String pathname) throws IOException
	{
		Check.get().notNull(pathname, "pathname");
		return newHSSFWorkbook(new File(pathname));
	}

	/**
	 * Creates a new Sheet with the given name.
	 * 

* Note that sheet name is Excel must not exceed 31 characters and must not contain any of the * any of the following characters: *

    *
  • 0x0000
  • *
  • 0x0003
  • *
  • colon (:)
  • *
  • backslash (\)
  • *
  • asterisk (*)
  • *
  • question mark (?)
  • *
  • forward slash (/)
  • *
  • opening square bracket ([)
  • *
  • closing square bracket (])
  • *
* * @param workbook * the workbook * @param name * the name * @return the Sheet */ public static Sheet newSheet(final Workbook workbook, final String name) { return workbook.createSheet(WorkbookUtil.createSafeSheetName(name)); } /** * Creates a new HSSFWorkbook from the given file. * * @param file * the file name * @return the Workbook * @throws IOException * Signals that an I/O exception has occurred. */ public static Workbook newXSSFWorkbook(final File file) throws IOException { return writeWorkbook(new XSSFWorkbook(), file); } /** * Writes the given Workbook to the given file. * * @param workbook * the workbook * @param file * the file * @return the Workbook * @throws IOException * Signals that an I/O exception has occurred. */ public static Workbook writeWorkbook(final Workbook workbook, final File file) throws IOException { final FileOutputStream fileOutputStream = new FileOutputStream(file); workbook.write(fileOutputStream); fileOutputStream.close(); return workbook; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy