A primeira coisa que devemos fazer é importar os namespaces que iremos utilizar, que são:
using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; // para arquivos XLS using NPOI.XSSF.UserModel; // para arquivos XLSXExiste uma diferença nas classes que são utilizadas em arquivos XLS e em arquivos XLSX, quando usamos arquivos XLS as classes que devemos utilizar começam com a letra H, por exemplo: HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell, etc. Para arquivos arquivos XLSX as classes começam com a letra X: XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell, etc. No exemplo que vou mostrar, irei ler um arquivo XLS e escrever seu conteúdo em um RichTextBox:
// utiliza um OpenFileDialog para selecionar o arquivo XLS
DialogResult resultado = ofdArquivos.ShowDialog();
// verifica se o usuário selecionou um arquivo
if (resultado == DialogResult.OK)
{
// abre o arquivo para leitura
FileStream arquivoXLS = new FileStream(ofdArquivos.FileName, FileMode.Open, FileAccess.Read);
// recupera o Workbook do arquivo
HSSFWorkbook workbook = new HSSFWorkbook(arquivoXLS);
// recupera a Sheet de nome Plan1
HSSFSheet sheet = (HSSFSheet)workbook.GetSheet("Plan1");
// recupera as linhas da Sheet
IEnumerator linhas = sheet.GetRowEnumerator();
// enquanto existirem linhas
while (linhas.MoveNext())
{
// recupera as células da linha atual
IEnumerator celulas = ((HSSFRow)linhas.Current).Cells.GetEnumerator();
// enquanto existirem células
while (celulas.MoveNext())
{
// recupera a célula atual
HSSFCell celula = ((HSSFCell)celulas.Current);
// verifica o tipo de célula para ler seu conteúdo
switch (celula.CellType)
{
case CellType.Blank:
// adiciona conteúdo no RichTextBox
rtbPlanilha.AppendText("\t");
break;
case CellType.Boolean:
// adiciona conteúdo no RichTextBox
rtbPlanilha.AppendText(celula.BooleanCellValue + "\t");
break;
case CellType.Error:
// adiciona conteúdo no RichTextBox
rtbPlanilha.AppendText(celula.ErrorCellValue + "\t");
break;
case CellType.Formula:
// adiciona conteúdo no RichTextBox
rtbPlanilha.AppendText(celula.CellFormula + "\t");
break;
case CellType.Numeric:
// adiciona conteúdo no RichTextBox
rtbPlanilha.AppendText(celula.NumericCellValue + "\t");
break;
case CellType.String:
// adiciona conteúdo no RichTextBox
rtbPlanilha.AppendText(celula.StringCellValue + "\t");
break;
}
}
// quebra de linha
rtbPlanilha.AppendText("\n");
}
// fecha o arquivo XLS
arquivoXLS.Close();
}
else
{
// exibe mensagem
MessageBox.Show("Nenhum arquivo foi selecionado.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Para fazer a mesma coisa, porém com arquivos XLSX, basta trocar o H pelo X.Google Docs
Nenhum comentário:
Postar um comentário