Usando esta API, os sistemas operacionais não Windows também podem processar tabelas de dados do Excel por meio de aplicativos Java puros. Por ser escrito em Java, podemos chamar a API através de JSP e Servlet na aplicação web para acessar a tabela de dados do Excel.
Copie o código do código da seguinte forma:
pacote com.yonyou.test;
importar java.io.File;
importar java.io.IOException;
importar jxl.Workbook;
importar jxl.format.Alignment;
importar jxl.format.Border;
importar jxl.format.BorderLineStyle;
importar jxl.format.Colour;
importar jxl.format.UnderlineStyle;
importar jxl.write.Label;
importar jxl.write.NumberFormats;
importar jxl.write.WritableCellFormat;
importar jxl.write.WritableFont;
importar jxl.write.WritableSheet;
importar jxl.write.WritableWorkbook;
importar jxl.write.WriteException;
importar jxl.write.biff.RowsExceededException;
classe pública JxlTable {
private final static JxlTable jxlTable = new JxlTable();
public static JxlTable getInstance() {
retornar jxlTabela;
}
public JxlTable() {
}
public boolean createTable(String cabeçalho, String[] corpo, String filePath) {
booleano createFlag = verdadeiro;
Livro de trabalho gravável;
tentar {
//Gera arquivo Excel com base no caminho
livro = Workbook.createWorkbook(novo arquivo(filePath));
//Cria uma planilha chamada "Tabela"
Folha WritableSheet = book.createSheet("Tabela", 0);
//Definir NÃO largura da coluna
planilha.setColumnView(1, 5);
//Remove as linhas de grade da planilha inteira
planilha.getSettings().setShowGridLines(false);
Rótulo tempLabel = null;
//Saída do cabeçalho
String[] headerArr = header.split(",");
int headerLen = headerArr.length;
// Loop para escrever o conteúdo do cabeçalho
for (int i = 0; i < headerLen; i++) {
tempLabel = novo rótulo(1 + i, 1, headerArr[i],
getHeaderCellStyle());
planilha.addCell(tempLabel);
}
// saída do corpo da tabela
int bodyLen = corpo.comprimento;
// Loop para escrever o conteúdo do corpo da tabela
for (int j = 0; j < corpoLen; j++) {
String[] bodyTempArr = body[j].split(",");
for (int k = 0; k <bodyTempArr.length; k++) {
WritableCellFormat tempCellFormat = null;
tempCellFormat = getBodyCellStyle();
if (tempCellFormat! = nulo) {
if (k == 0 || k == (bodyTempArr.length - 1)) {
tempCellFormat.setAlignment(Alignment.CENTRE);
}
}
tempLabel = novo rótulo(1 + k, 2 + j, bodyTempArr[k],
tempCellFormat);
planilha.addCell(tempLabel);
}
}
livro.write();
livro.fechar();
} catch (IOException e) {
criarFlag = falso;
System.out.println("Falha na criação do EXCEL!");
e.printStackTrace();
} catch (RowsExceededException e) {
criarFlag = falso;
System.out.println("Falha na criação da configuração da unidade EXCEL!");
e.printStackTrace();
} catch (WriteException e) {
criarFlag = falso;
System.out.println("Falha na gravação do EXCEL!");
e.printStackTrace();
}
retornar criarFlag;
}
public WritableCellFormat getHeaderCellStyle() {
Fonte WritableFont = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.BOLD, falso, UnderlineStyle.NO_UNDERLINE);
WritableCellFormat headerFormat = new WritableCellFormat(
NumberFormats.TEXT);
tentar {
//Adiciona configurações de fonte
headerFormat.setFont(fonte);
//Define a cor de fundo da célula: o cabeçalho é amarelo
headerFormat.setBackground(Cor.AMARELO);
//Definir estilo de borda da tabela de cabeçalho
//Toda a linha da mesa é grossa e preta
headerFormat.setBorder(Border.ALL, BorderLineStyle.THICK,
Cor.PRETO);
//O conteúdo do cabeçalho é exibido horizontalmente no centro
headerFormat.setAlignment(Alignment.CENTRE);
} catch (WriteException e) {
System.out.println("Falha na configuração do estilo da célula do cabeçalho!");
}
return headerFormat;
}
public WritableCellFormat getBodyCellStyle() {
Fonte WritableFont = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.NO_BOLD, falso, UnderlineStyle.NO_UNDERLINE);
WritableCellFormat bodyFormat = new WritableCellFormat(fonte);
tentar {
//Define a cor de fundo da célula: o corpo da tabela é branco
bodyFormat.setBackground(Cor.BRANCO);
//Definir estilo de borda da tabela de cabeçalho
//Toda a linha da mesa é fina e preta
corpoFormat
.setBorder(Border.ALL, BorderLineStyle.THIN, Color.BLACK);
} catch (WriteException e) {
System.out.println("Falha na configuração do estilo da célula do corpo da tabela!");
}
retornar bodyFormat;
}
public static void main(String[] args) {
String header = "NÃO, nome, sexo, idade";
String[] corpo = new String[4];
corpo[0] = "1,Ouyang Feng, homem, 68";
corpo[1] = "2,Huang Yaoshi,Masculino,67";
corpo[2] = "3,Hong Qigong,Masculino,70";
corpo[3] = "4,Guo Jing,Masculino,32";
String filePath = "e:/test.xls";
JxlTable testeJxl = JxlTable.getInstance();
sinalizador booleano = testJxl.createTable (cabeçalho, corpo, filePath);
se (sinalizador) {
System.out.println("Tabela criada com sucesso!!");
}
}
}
Explicação passo a passo:
Ler arquivo Excel
Para ler um arquivo Excel, você deve primeiro criar um wordbook:
Copie o código do código da seguinte forma:
Pasta de trabalho wb = Workbook.getWorkbook (arquivo arquivo);
Pasta de trabalho wb = Workbook.getWorkbook (InputStream é);
Então você pode obter sua planilha :
Copie o código do código da seguinte forma:
Sheet[] folhas=wb.getSheets(); //Obter todas as planilhas
Sheet sheet=wb.getSheet(0); //Indica a obtenção da primeira planilha.
Finalmente, você pode obter os valores de determinadas células em uma planilha:
Copie o código do código da seguinte forma:
Cell cell=sheet.getCell(0,0); //Obtém os dados da primeira coluna e da primeira linha. O primeiro parâmetro é a coluna
String value=cell.getContents(); //Obtém o valor da célula em formato de string
String type=cell.getType(); //Obtém o tipo de dados da célula.
Feche o fluxo de trabalho da pasta de trabalho :
Ao terminar de processar os dados da planilha Excel, certifique-se de usar o método close() para fechar o objeto criado anteriormente para liberar o espaço de memória ocupado no processo de leitura da tabela de dados. . Consulte o seguinte trecho de código:
Copie o código do código da seguinte forma:
fechar();
Nota: Você só pode fechar o Excel após concluir a operação. Após fechar, chamar Sheet s=wb.getSheet(0) será nulo.
Introdução aos métodos comumente usados :
Métodos fornecidos pela classe Workbook
1.int getNumberOfSheets()
Obtenha o número de planilhas na pasta de trabalho, exemplo:
Copie o código do código da seguinte forma:
jxl.Workbook rwb = jxl.Workbook.getWorkbook (novo arquivo (arquivo de origem));
int folhas = rwb.getNumberOfSheets();
2. Planilha[] getSheets()
Retorna uma matriz de objetos Sheet na pasta de trabalho, exemplo:
Copie o código do código da seguinte forma:
jxl.Workbook rwb = jxl.Workbook.getWorkbook (novo arquivo (arquivo de origem));
Planilha[] planilhas = rwb.getSheets();
Métodos fornecidos pela interface da planilha
1. String getNome()
Obtenha o nome da planilha, exemplo:
Copie o código do código da seguinte forma:
jxl.Workbook rwb = jxl.Workbook.getWorkbook (novo arquivo (arquivo de origem));
jxl.Folha rs = rwb.getSheet(0);
String nomeDaFolha = rs.getName();
2.int getColumns()
Obtenha o número total de colunas contidas na tabela Planilha, exemplo:
Copie o código do código da seguinte forma:
jxl.Workbook rwb = jxl.Workbook.getWorkbook (novo arquivo (arquivo de origem));
jxl.Folha rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();
3. Célula[] getColumn(coluna int)
Obtenha todas as células em uma determinada coluna e retorne um array de objetos de célula.
Copie o código do código da seguinte forma:
jxl.Workbook rwb = jxl.Workbook.getWorkbook (novo arquivo (arquivo de origem));
jxl.Folha rs = rwb.getSheet(0);
Célula[] célula = rs.getColumn(0);
4.int getRows()
Obtenha o número total de linhas contidas na tabela Planilha, exemplo:
Copie o código do código da seguinte forma:
jxl.Workbook rwb = jxl.Workbook.getWorkbook (novo arquivo (arquivo de origem));
jxl.Folha rs = rwb.getSheet(0);
int rsRows = rs.getRows();
5. Célula[] getRow(int linha)