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