erro no botão

10/11/2011

0

Estou fazendo um aplicativo em c#, junto com uma determinada planilha no excel.
O que eu quero fazer é o seguinte, quando eu digito um numero em um textbox, ele busca pra mim se na coluna 11, existe este numero, se existir imprimir toda a linha.

erro1 = does not contain a constructor that takes 1 arguments

erro2= type used in a using statement must be implicitly convertible to System.IDisposable

codigo do botão

using Microsoft.Office.Interop.Excel;

namespace novoexcel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
}


private void button1_Click(object sender, EventArgs e)
{
using (var excelUtilities = new ExcelUtilities (@C:\teste.xlsx)){}
{
var value = int.Parse(this.textBox1.Text);

var stringDelimitada = excelUtilities.GetDelimitedRow(11, value);
// ou você pode usar esta
//// var colecaoCelulas = excelUtilities.GetCells(11, value);
}
}
}
}
codigo da classe

using Microsoft.Office.Interop.Excel;

namespace novoexcel
{
class ExcelUtilities
{
public class ExcelUtilities : IDisposable
{
private Application _excelApplication = default(Application);
private Workbook _excelWorkbook = default(Workbook);
private Worksheet _excelWorksheet = default(Worksheet);

public ExcelUtilities(string filename)
{
_excelApplication = new Application();
_excelWorkbook = _excelApplication.Workbooks.Open(filename);
_excelWorksheet = _excelWorkbook.Worksheets[1];
}

public string GetDelimitedRow(int columnIndex, int value)
{
var range = _excelWorksheet.UsedRange;
var retorno = new StringBuilder();

foreach (Range r in range.Rows)
{
Range c = r.Columns[columnIndex];
if (c.Value == value)
{
foreach (Range coluna in r.Columns)
{
retorno.AppendFormat(;, coluna.Value);
}
}

}
return retorno.ToString();
}


public IList<Range> GetCells(int columnIndex, int value)
{
var range = _excelWorksheet.UsedRange;
var retorno = new List<Range>();

foreach (Range r in range.Rows)
{
Range c = r.Columns[columnIndex];
if (c.Value == value)
{
foreach (Range coluna in r.Columns)
{
retorno.Add(coluna);
}
}

}
return retorno;
}

public void Dispose()
{
_excelWorkbook.Close();
_excelApplication.Quit();
}
}
}
}

AGUEM PODE ME AJUDAR POR FAVOR?
Flávia Rafaele

Flávia Rafaele

Responder

Posts

22/11/2011

Fabio Rosa

Olá Flávia,

Não sei se já conseguiu resolver seu problema, mas peguei seu código e simplesmente colei no meu VS. Executei e funcionou... Creio que não tenha nada de errado com ele...

Obs.: Usei o VS 2010 com .net framework 4.0 e Office 2010.

Abraço.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar