Click here to Skip to main content
15,893,594 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

i need to open existing excel sheet, and add a new row with data collecting from textboxes. am using following code. but by using this the file is correpted. file extension is:xlsx
C#
<pre lang="c#"></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 System.IO;
using Excel=Microsoft.Office.Interop.Excel;

namespace Hand_Held_Data_Transporter
{
    public partial class AddAccount : Form
    {


        private static Microsoft.Office.Interop.Excel.Workbook mWorkBook;
        private static Microsoft.Office.Interop.Excel.Sheets mWorkSheets;
        private static Microsoft.Office.Interop.Excel.Worksheet mWSheet1;
        private static Microsoft.Office.Interop.Excel.Application oXL;
        object Missing = System.Reflection.Missing.Value;

        public AddAccount()
        {
            InitializeComponent();
        }

      
        private void btnsave_Click(object sender, EventArgs e)
        {

            oXL = new Microsoft.Office.Interop.Excel.Application();
            oXL.Visible = true;
            oXL.DisplayAlerts = false;
            //error on this line
            mWorkBook = oXL.Workbooks.Open(txtbrowse.Text, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);

            //Get all the sheets in the workbook
            mWorkSheets = mWorkBook.Worksheets;

            //Get the allready exists sheet
            mWSheet1 = (Microsoft.Office.Interop.Excel.Worksheet)mWorkSheets.get_Item("Sheet1");

            Microsoft.Office.Interop.Excel.Range range = mWSheet1.UsedRange;

            int colCount = range.Columns.Count;
            int rowCount = range.Rows.Count;

            for (int index = 1; index < 15; index++)
            {
                mWSheet1.Cells[rowCount + index, 1] = rowCount + index;
                mWSheet1.Cells[rowCount + index, 2] = "New Item" + index;
            }

            mWorkBook.SaveAs(txtbrowse.Text, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,
            Missing, Missing, Missing, Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
            Missing, Missing, Missing,
            Missing, Missing);

            mWorkBook.Close(Missing, Missing, Missing);
            mWSheet1 = null;

            mWorkBook = null;

            oXL.Quit();
            GC.WaitForPendingFinalizers();
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
}
        

        private void btnbrowse_Click(object sender, EventArgs e)
        {
            OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Filter = "All Files(*.*)|*.*";
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                txtbrowse.Text = fdlg.FileName;
                File.ReadAllText(txtbrowse.Text);

            }
        }

     
       
       
    }
}
>
Posted

1 solution

 
Share this answer
 
v2
Comments
Member 10263519 17-Feb-14 2:13am    
by using above code am unable to open xlsx file.
am getting error as:

Excel cannot open the file 'Copy of New Microsoft Office Excel Worksheet_using.xlsx' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900