Quero ler e escrever um arquivo do Excel em Java com 3 colunas e N linhas, imprimindo uma string em cada célula. Alguém pode me dar um trecho de código simples para isso? Preciso usar alguma lib externa ou o Java possui suporte interno para ela?
Eu quero fazer o seguinte:
for(i=0; i <rows; i++)
//read [i,col1] ,[i,col2], [i,col3]
for(i=0; i<rows; i++)
//write [i,col1], [i,col2], [i,col3]
ExcelCell.getValue()
cada uma delas. Por exemplo, veja este exemplo de leitura , também para escrever, você pode verificar este exemplo.Respostas:
Experimente o Apache POI HSSF . Aqui está um exemplo de como ler um arquivo do Excel:
Na página de documentação, você também tem exemplos de como gravar em arquivos do Excel.
fonte
HSSFSheet
ogetPhysicalNumberOfRows()
método parecia retornar o número de linhas não vazias (não era óbvio para mim o que significa "físico"). Portanto, se seu arquivo do Excel tiver muitas linhas vazias (por exemplo, por motivos de formatação), você poderá ter mais sorte usandorows = sheet.getLastRowNum();
. Isso também significa que você pode remover o truque (veja o comentário) do primeiro loop:for(int i = 0; i <= rows; i++) {
(observe a alteração de<
para<=
).O Apache POI pode fazer isso por você. Especificamente, o módulo HSSF . O guia rápido é mais útil. Veja como fazer o que você deseja - crie especificamente uma folha e escreva-a.
fonte
Primeiro, adicione todos esses arquivos jar no caminho da classe do projeto:
Código para escrever em um arquivo do Excel:
Código para leitura do arquivo excel
fonte
Você também pode considerar o JExcelApi . Acho melhor projetado que o POI. Há um tutorial aqui .
fonte
Existe uma nova ferramenta fácil e muito legal (10x para Kfir): xcelite
Escrever:
Ler:
fonte
Para ler um arquivo xlsx, podemos usar as bibliotecas do Apache POI Tente o seguinte:
fonte
.csv ou POI certamente o farão, mas você deve estar ciente do JExcel de Andy Khan . Eu acho que é de longe a melhor biblioteca Java para trabalhar com o Excel que existe.
fonte
e certifique-se de ter adicionado os jars poi e poi-ooxml (org.apache.poi) ao seu projeto
fonte
Um arquivo CSV simples deve ser suficiente
fonte
Para ler dados de pastas de trabalho .xlsx, precisamos usar as classes XSSFworkbook.
XSSFWorkbook xlsxBook = new XSSFWorkbook(fis);
XSSFSheet sheet = xlsxBook.getSheetAt(0);
etc.Precisamos usar o Apache-poi 3.9 @ http://poi.apache.org/
Para informações detalhadas com exemplo, visite: http://java-recent.blogspot.in
fonte
Claro, você encontrará o código abaixo útil e fácil de ler e escrever. Esta é uma
util
classe que você pode usar no seu método principal e, em seguida, é bom usar todos os métodos abaixo.fonte
usando repo poi apache primavera
fonte
Eu editei o mais votado um pouco, porque ele não contava com colunas ou linhas em branco bem, não totalmente, então aqui está o meu código que eu testei e agora posso obter qualquer célula em qualquer parte de um arquivo do Excel. também agora você pode ter espaços em branco colunas entre coluna preenchida e ele irá lê-los
fonte
Se o número da coluna estiver variando, você poderá usar este
A dependência correspondente pode ser encontrada aqui
fonte
Você precisa da biblioteca Apache POI e este código abaixo deve ajudá-lo
fonte
Outra maneira de ler / gravar arquivos do Excel é usar o Windmill . Ele fornece uma API fluente para processar arquivos Excel e CSV.
Importar dados
Exportar dados
fonte
Você não pode ler e escrever o mesmo arquivo em paralelo ( bloqueio de leitura e gravação ). Porém, podemos realizar operações paralelas em dados temporários (por exemplo, fluxo de entrada / saída). Grave os dados no arquivo somente após fechar o fluxo de entrada. As etapas abaixo devem ser seguidas.
Apache POI - leia / escreva o mesmo exemplo de excel
fonte
Por favor, use as bibliotecas do Apache POI e tente isso.
fonte
Ao usar o apache poi 4.1.2. O tipo de célula muda um pouco. Abaixo está um exemplo
fonte
Se você precisar fazer mais alguma coisa com documentos do Office em Java, vá para o POI, conforme mencionado.
Para leitura / gravação simples de um documento do Excel, como você solicitou, você pode usar o formato CSV (também conforme mencionado):
fonte
Isso gravará uma JTable em um arquivo separado por tabulação que pode ser facilmente importado para o Excel. Isso funciona.
Se você salvar uma planilha do Excel como um documento XML, também poderá criar o arquivo XML para o EXCEL com código. Fiz isso com o word para que você não precise usar pacotes de terceiros.
Isso poderia codificar a remoção da JTable e, em seguida, basta escrever uma guia separada em qualquer arquivo de texto e depois importar para o Excel. Eu espero que isso ajude.
Código:
fonte