Apache POI HSSF
Biblioteca Java para arquivos binários do Microsoft Excel
A API Java de código aberto permite ler, escrever e converter planilhas Excel XLS.
Apache POI HSSF é uma implementação Java pura do formato de arquivo Excel '97(-2007) (BIFF8). A API de código aberto gratuita fornece recursos para criar, ler, modificar e escrever planilhas Excel XLS. Os desenvolvedores interessados em apenas ler os dados da planilha podem usar a API do modelo de evento para atender às suas necessidades. Para modificar os dados da planilha, a API do modelo de usuário pode ser usada. É importante saber que o sistema de modelo de usuário tem um volume de memória maior do que o modelo de usuário de evento de baixo nível, mas tem a grande vantagem de ser muito mais simples de trabalhar.
O Apache POI HSSF oferece excelente suporte para recursos adicionais do Excel, como trabalhar com planilhas e fórmulas, criar estilos de célula preenchendo cores e bordas, fontes, cabeçalhos e rodapés, formas, validações de dados, imagens, hiperlinks e muito mais.
Introdução ao Apache POI HSSF
Antes de tudo, você precisa ter o Java Development Kit (JDK) instalado em seu sistema. Se você já o possui, vá para a página download do POI do Apache para obter a versão estável mais recente em um arquivo. Extraia o conteúdo do arquivo ZIP em qualquer diretório de onde as bibliotecas necessárias possam ser vinculadas ao seu programa Java. Isso é tudo!
Fazer referência ao Apache POI em seu projeto Java baseado em Maven é ainda mais simples. Tudo que você precisa é adicionar a seguinte dependência em seu pom.xml e deixar seu IDE buscar e referenciar os arquivos Apache POI Jar.
Dependência do Apache POI Maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
Criar pasta de trabalho do Excel e adicionar planilhas por meio de APIs Java
A biblioteca de código aberto Apache POI HSSF permite que os desenvolvedores de software criem uma nova pasta de trabalho do Microsoft Excel no formato de arquivo XLS. Os desenvolvedores podem facilmente adicionar novas planilhas à coleção de uma instância existente da pasta de trabalho.
Criar um novo arquivo XLS
// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXls.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);
API Java para ler e gravar em arquivo Excel existente
O Apache POI HSSF permite que os desenvolvedores de software acessem e leiam dados da pasta de trabalho existente do Microsoft Excel. A leitura em um arquivo é muito simples, primeiro crie uma instância de pasta de trabalho a partir de uma planilha do Excel e chegue à planilha desejada. Em seguida, Incremente o número da linha e itere sobre todas as células em uma linha. Repita essas etapas até que todos os dados sejam lidos. O Apache POI HSSF também fornece recursos para modificar um arquivo Excel existente.
Leia o conteúdo da célula via Java
// open xls file
InputStream inputStream = new FileInputStream("document.xls");
Workbook workbook = WorkbookFactory.create(inputStream);
// get sheet
Sheet sheet = workbook.getSheetAt(0);
// get row
Row row = sheet.getRow(1);
// get cell
Cell cell = row.getCell(1);
// display data
System.out.println(cell);
Desenhe formas e adicione imagens à planilha do Excel
O Apache POI-HSSF fornece recursos para desenhar formas na planilha do Excel. Ele suporta o desenho de formas usando as ferramentas de desenho do Microsoft Office. Desenhe várias formas, como oval, linha, retângulo e defina qualquer outro estilo de forma. No Apache POI, as imagens fazem parte do desenho, suportando os tipos de imagens PNG, JPG e DIB no momento.
Desenhar retângulo em XLS via Java
// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("DrawShape.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// create rectangle shape
HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 254, (short) 1, 0, (short) 1, 0);
HSSFSimpleShape shape = patriarch.createSimpleShape(a);
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
// save file
workbook.write(outputStream);
Manipulação de fontes e mesclagem de células de planilhas XLS
O Apache POI-HSSF fornece métodos que permitem aos programadores Java manipular fontes em planilhas do Excel. Podemos criar a fonte, definir a cor, definir o tamanho, etc. A Font é uma interface que fornece métodos para lidar com a fonte. O Apache POI-HSSF também permite que os desenvolvedores mesclem células em uma única célula. Para fazer isso, ele fornece métodos que usam índices de células como um argumento e mesclam as células em uma única célula grande.
Definir fonte para planilha XLS via Java
// create a new XLS file
OutputStream outfile = new FileOutputStream("SetFont.xls");
Workbook wb = new HSSFWorkbook();
// create a new sheet
Sheet sheet = wb.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set style
CellStyle style = wb.createCellStyle();
// set text
cell.setCellValue("File Format Developer Guide");
// set font settings
Font font = wb.createFont();
font.setFontHeightInPoints((short) 14);
font.setFontName("Arial");
font.setItalic(true);
font.setBold(true);
// apply font
style.setFont(font);
cell.setCellStyle(style);
// save
wb.write(outfile);