A ideia é que o post de hoje seja rápido e o mais curto possível.
Vou agrupar todas as explicações em um único código.
Como foi no post anterior, vou partir do princípio de que o componente para trabalhar com Excel já foi adicionado às referências do projeto.
Se não estiver entendendo absolutamente nada do que está lendo sugiro ver o post Criar planilha do Excel em C#. Lá tem um tutorial para adicionar o componente Microsoft Excel 12.0 Object Library às referências, não que não sirva pra outras versões, mas a que está lá é a 12.0.
No meu primeiro post sobre Excel e C#, o qual eu citei acima, eu coloquei um método para remover linhas do Excel. Recentemente me dei conta de que precisava de um método para adicionar linhas também. Essa vai ser a primeira parte do post. É bem simples: usando um Excel.Range eu defino qualquer célula que pertença à linha onde eu quero inserir uma nova linha e então eu uso o método Insert para inserir uma linha. É possível inserir uma única célula também, mas os detalhes ficam no código.
A segunda parte do código é para mostrar um pouco de formatação de células: como mudar a fonte, o tamanho da fonte, a cor, opções de negrito, sublinhado e itálico, alinhamento do texto, tamanho da célula, cor de fundo da célula e opções de borda.
Basicamente é isso.
Então vamos começar.
Vou fazer do mesmo jeito que fiz no post anterior, vou só abrir um documento que tenho num Form vazio e fazer as alterações no construtor, apenas pra exemplificar, mostrando os métodos responsáveis por cada uma das coisas que citei acima.
terça-feira, 26 de julho de 2011
segunda-feira, 18 de julho de 2011
Excel e C#: Abrir uma planilha e ler células
Vou começar este post de um ponto um pouco avançado.
Vou fazer isso na verdade porque há outro post no blog que fala sobre criaçao de planilhas do Excel.
Então, caso não entendas alguma parte, sugiro ver o post Criar planilha do Excel em C#, antes de perguntar quaisquer coisas. Se ainda assim houverem dúvidas, é só comentar.
A ideia hoje é fazer duas coisas basicamente. A primeira está descrita no título: abrir um planilha (e possivelmente ler alguma informação). A segunda é fazer algumas observações importantes sobre a leitura de células no Excel.
Vamos começar pelo código para abrir uma planilha.
Quero deixar claro que para que o código abaixo funcione é preciso primeiro adicionar a biblioteca do Microsoft Office Excel às referências. Não é o foco deste post descrever esta parte passo a passo, então, caso não saibas como fazer, sugiro olhar o outro post que comentei ali em cima.
Vamos ao que interessa.
Para abrir uma planilha é preciso primeiramente iniciar o Excel, criando uma nova instância. Depois basta usar o método Open da classe Workbooks de dentro da classe Application.
O quê? Oo
=]
Melhor mostrar no código.
/*Iniciando o Excel e desligando os alertas.*/
Vou fazer isso na verdade porque há outro post no blog que fala sobre criaçao de planilhas do Excel.
Então, caso não entendas alguma parte, sugiro ver o post Criar planilha do Excel em C#, antes de perguntar quaisquer coisas. Se ainda assim houverem dúvidas, é só comentar.
A ideia hoje é fazer duas coisas basicamente. A primeira está descrita no título: abrir um planilha (e possivelmente ler alguma informação). A segunda é fazer algumas observações importantes sobre a leitura de células no Excel.
Vamos começar pelo código para abrir uma planilha.
Quero deixar claro que para que o código abaixo funcione é preciso primeiro adicionar a biblioteca do Microsoft Office Excel às referências. Não é o foco deste post descrever esta parte passo a passo, então, caso não saibas como fazer, sugiro olhar o outro post que comentei ali em cima.
Vamos ao que interessa.
Para abrir uma planilha é preciso primeiramente iniciar o Excel, criando uma nova instância. Depois basta usar o método Open da classe Workbooks de dentro da classe Application.
O quê? Oo
=]
Melhor mostrar no código.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace TesteExcel
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace TesteExcel
{
public partial class Form1 : Form
{
private Excel.Application excelApp = null;
private Excel.Workbook arquivoDeTrabalho = null;
private Excel.Worksheet planilha = null;
public Form1()
{
InitializeComponent();
string celula = "";
List lista = new List();
public partial class Form1 : Form
{
private Excel.Application excelApp = null;
private Excel.Workbook arquivoDeTrabalho = null;
private Excel.Worksheet planilha = null;
public Form1()
{
InitializeComponent();
string celula = "";
List
/*Iniciando o Excel e desligando os alertas.*/
excelApp = new Excel.Application();
excelApp.DisplayAlerts = false;
excelApp.DisplayAlerts = false;
/*Abrindo arquivo.*/
arquivoDeTrabalho = (Excel.Workbook)excelApp.Workbooks.Open(
arquivoDeTrabalho = (Excel.Workbook)excelApp.Workbooks.Open(
"C:\\ExemploTeste.xlsx", 0, true, 5, "", "",
true, Excel.XlPlatform.xlWindows, "\t", false,
false, 0, true, null, null);
/*Selecionando a primeira planilha como planilha de trabalho.*/
planilha = (Excel.Worksheet)arquivoDeTrabalho.Sheets[1];
/*Lendo os valores das 25 primeiras células e exibindo em uma MessageBox.*/
for (int i = 1; i < 6; i++)
{
for (int j = 1; j < 6; j++)
{
try
{
celula = ((Excel.Range)planilha.Cells[i, j]).Value2.ToString();
}
catch (Exception e)
planilha = (Excel.Worksheet)arquivoDeTrabalho.Sheets[1];
/*Lendo os valores das 25 primeiras células e exibindo em uma MessageBox.*/
for (int i = 1; i < 6; i++)
{
for (int j = 1; j < 6; j++)
{
try
{
celula = ((Excel.Range)planilha.Cells[i, j]).Value2.ToString();
}
catch (Exception e)
{
celula = "Erro: " + e.Message;
}
lista.Add(celula);
}
}
foreach (string s in lista)
MessageBox.Show(s);
lista.Add(celula);
}
}
foreach (string s in lista)
MessageBox.Show(s);
arquivoDeTrabalho.Close(false, "", false);
excelApp.Quit();
}
}
}
excelApp.Quit();
}
}
}
Assinar:
Postagens (Atom)