none
Apagar todo conteudo de uma planilha Excel RRS feed

  • Pergunta


  • Gostaria de saber como faço para apagar todo o conteúdo dentro da planilha do Excel.

    Então o que eu preciso é acessar o arquivo .xlsx, acessar a plan1 e deletar todas as células preenchidas.

    Vi na internet a utilização do oledb para criar conexao, realizar insert, update e isso é realmente bom,

    mas seu usar o  cmd.CommandText = "DELETE * FROM [Plan1$] " retorna o erro "A exclusão de dados de uma tabela vinculada não é suportada por este ISAM."

    Alguém pode me ajudar?
    quinta-feira, 22 de maio de 2014 18:01

Respostas

  • Olá, 

    você pode fazer da seguinte forma:

    utilizando using Microsoft.Office.Interop.Excel;

    
    
    static void LimparAquivo()
            {
                Application _app = new Application();
                Workbooks _books = null;
                Workbook _book = null;
                Sheets _sheets = null;
                Worksheet _sheet = null;
    
    
                //Abre o arquivo Excel
                if (_book == null)
                {
                    _books = _app.Workbooks;
                    _book = _books.Open(@"c:\temp\exemplo.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                    _sheets = _book.Worksheets;
                }
    
                //Pega a primeira Aba
                _sheet = (Worksheet)_sheets[1];
                _sheet.Select(Type.Missing);
                //Identifica qual o range que você deseja trabalhar
                Range range = _sheet.get_Range("A:A", Type.Missing);
                //Apaga a informação
                range.Delete(XlDeleteShiftDirection.xlShiftUp);
    
                //Limpa os objetos internos
                if (range != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
                if (_sheet != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_sheet);
                //salva o arquivo
                _book.Save();
                //Fecha o arquivo
                _book.Close(false, Type.Missing, Type.Missing);
                if (_book != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_book);
                _app.Quit();
                if (_app != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_app);
            }


    Abs.
    Celso Zequim Junior
    http://csharpnamarra.blogspot.com/

    quinta-feira, 22 de maio de 2014 19:11

Todas as Respostas

  • vc está usando OLEDB ou interop?
    quinta-feira, 22 de maio de 2014 19:05
  • Olá, 

    você pode fazer da seguinte forma:

    utilizando using Microsoft.Office.Interop.Excel;

    
    
    static void LimparAquivo()
            {
                Application _app = new Application();
                Workbooks _books = null;
                Workbook _book = null;
                Sheets _sheets = null;
                Worksheet _sheet = null;
    
    
                //Abre o arquivo Excel
                if (_book == null)
                {
                    _books = _app.Workbooks;
                    _book = _books.Open(@"c:\temp\exemplo.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                    _sheets = _book.Worksheets;
                }
    
                //Pega a primeira Aba
                _sheet = (Worksheet)_sheets[1];
                _sheet.Select(Type.Missing);
                //Identifica qual o range que você deseja trabalhar
                Range range = _sheet.get_Range("A:A", Type.Missing);
                //Apaga a informação
                range.Delete(XlDeleteShiftDirection.xlShiftUp);
    
                //Limpa os objetos internos
                if (range != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
                if (_sheet != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_sheet);
                //salva o arquivo
                _book.Save();
                //Fecha o arquivo
                _book.Close(false, Type.Missing, Type.Missing);
                if (_book != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_book);
                _app.Quit();
                if (_app != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_app);
            }


    Abs.
    Celso Zequim Junior
    http://csharpnamarra.blogspot.com/

    quinta-feira, 22 de maio de 2014 19:11
  • Obrigado, funcionou perfeitamente
    sexta-feira, 23 de maio de 2014 19:43