Boa tarde!
Estou estudando como fazer a leitura de um arquivo .xls e tudo me levou até
http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.7-20101029.tar.gz
Fiz o download do primeiro link, que é http://mirror.pop-sc.rnp.br/apache//poi/release/bin/poi-bin-3.7-20101029.tar.gz mas agora não sei como utilizar ele…tentei add nas bibliotecas, só extraindo mas não sei se está certo…
Alguém que já utiliza saberia me dar alguma dica??
Eu preciso criar um método para fazer a leitura de um documento .xls…necessito desta API? Estou no caminho certo?
Obrigada
Vou colocar apenas parte de um código que fiz para ler os dados do censo do IBGE. Algumas partes foram retiradas ou estão com o nome ‘xxxx’.
[code]package xxxx;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import xxxx.Municipio;
import xxxx.UF;
import xxxx.SpringTest;
public class MigracaoPopulacaoDistrito extends SpringTest {
private static final String ROOT_DIR = "C:/Temp/ibge_2007/ibge";
protected File[] getFiles() {
File file = new File(ROOT_DIR);
return file.listFiles();
}
protected String getCellValue(HSSFCell cell) {
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
long value = (long) cell.getNumericCellValue();
return Long.toString(value);
} else if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
return cell.getStringCellValue();
}
return null;
}
public void test1() throws Exception {
File[] files = this.getFiles();
for (File file : files) {
String fileName = file.getName();
if (fileName.endsWith(".xls")) { // Somente arquivos .xls do diretorio especificado
InputStream is = new FileInputStream(file);
POIFSFileSystem fs = new POIFSFileSystem(is);
HSSFWorkbook workbook = new HSSFWorkbook(fs);
HSSFSheet sheet = workbook.getSheetAt(0); // Indice da planilha, um arquivo pode ter varias planilhas
int rows = sheet.getLastRowNum();
for (int i = 1; i <= rows; i++) {
HSSFRow row = sheet.getRow(i);
String id = this.getCellValue(row.getCell(0));
String populacao = this.getCellValue(row.getCell(1));
// faz a operacao
}
is.close();
}
}
}
}[/code]
humm…bem bacana…vou dar uma boa olhada…obrigada!
tu importa arquivos do Excel com este código?? Eu nunca usei esta api…nem importei ela pro netbeans ainda…
Esse código abre vários arquivos excel que estão no diretório ‘C:/Temp/ibge_2007/ibge’ e pega o código do distrito e população.
A planilha é mais ou menos assim:
Distrito | Populacao
1 | 12345
2 | 17845
A primeira planilha é a 0, linha 46, e as linhas e colunas também começam do zero. Teve um relatório que me pediram pra fazer que deveria retornar um excel, só que era muito complicado pq fazia diversas contas, não era sequencial, entre outros, acabei gerando um documento no excel com as formúlas todas prontas e a planilha já formatada, ai só alterava o valor de algumas celúlas e o ‘relatório’ estava do jeito que o usuário queria.