Monday, 20 May 2013

How to get Values from Excel using getValues ?

How to get Values from Excel using getValues ?

I am trying to read the values of a column from an Excel file using this code:
FileStream stream = File.Open("excelfile.xlsx", FileMode.Open, FileAccess.Read);

            //2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
            IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
            //...
            //4. DataSet - Create column names from first row
            excelReader.IsFirstRowAsColumnNames = true;
            DataSet result = excelReader.AsDataSet();

            //5. Data Reader methods
            Console.WriteLine("Results: " +excelReader.ResultsCount);
            while (excelReader.Read())
            {
                object[] values = new object[excelReader.FieldCount];
                excelReader.GetValues(values);

            }

            //6. Free resources (IExcelDataReader is IDisposable)
            excelReader.Close();
Howver it trows an exception:
"System.NotSupportedException was unhandled Message="O método especificado não é suportado." Source="Excel" StackTrace: em Excel.ExcelOpenXmlReader.GetValues(Object[] values) em c:\development\eapidemo\third-party\ExcelDataReader\ExcelDataReader\Excel\ExcelOpenXmlReader.cs:line 628 em WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e) em C:\Users\Daniel\Documents\Visual Studio 2008\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs:line 37 em System.Windows.Forms.Control.OnClick(EventArgs e) em System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) em System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) em System.Windows.Forms.Control.WndProc(Message& m) em System.Windows.Forms.ButtonBase.WndProc(Message& m) em System.Windows.Forms.Button.WndProc(Message& m) em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) em System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) em System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) em System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) em System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) em System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) em WindowsFormsApplication1.Program.Main() em C:\Users\Daniel\Documents\Visual Studio 2008\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Program.cs:line 18 em System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) em System.Threading.ThreadHelper.ThreadStart() InnerException: "
I was using another way to read the values, but i wanted to clean up the code a bit... This was the previous read cycle:
FileStream stream = File.Open("excelfile.xlsx", FileMode.Open, FileAccess.Read);

        //2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
        IExcelDataReader excelReader = ExcelReaderFac

No comments:

Post a Comment