Team Foundation Server Hosting
Skip Navigation Links
C# Corner Home
Forum Home
Latest 50
Unanswered
Win Prizes
All Time Leaders
Jump to CategoryExpand Jump to Category
Login 
    Welcome Guest!
 Search Forum For :  
X
 Login
Please login to submit a new post, reply and edit exiting posts, see user profiles, and access more features. If you are not a registered member, Register here.
User Id / Email:
Password:  
Forgot Password | Forgot UserName
   Home » C# Language » Excel Interop - Please Help - Thanks
       
Author Reply
Anthony Clarke
posted 7 posts
since Sep 25, 2010 
from

Excel Interop - Please Help - Thanks

  Posted on: 05 Feb 2012       
Hi,

Im trying to iterate through worksheets from a work book and basically place each of the cell values into a list box. Here is the code i have so far but i either get null errors or Unable to cast object of type 'System.String' to type 'System.Object[,]'.

using

namespace

{


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 Alias = Microsoft.Office.Interop.Excel;
using System.Collections;EXpublic partial class Form1 : Form

{


{

InitializeComponent();

}


{

Alias.Scansheets(workbook);


public Form1()private void simpleButton1_Click(object sender, EventArgs e)Application app = new Alias.Application();Workbook workbook = app.Workbooks.Open("C:\\Book2.xls", 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);

private void Scansheets(Workbook wookBookIn)
int numsheets = wookBookIn.Sheets.Count;
for (int sheetNum = 1; sheetNum < (numsheets); sheetNum++)
Worksheet sheet = (Worksheet)wookBookIn.Sheets[sheetNum];
Range excelRange = sheet.UsedRange;
object[,] valArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
foreach (object value in valArray)
if (value != null)
else
{listBox1.items.add(value);

Hope you can  help. it's driving me crazy

Thanks
Anthony
Sam Hobbs
posted  6490 posts
since  Sep 07, 2009 
from  Los Angeles, California, USA

 Re: Excel Interop - Please Help - Thanks
  Posted on: 05 Feb 2012        0  
Based on the code you posted, the program ignores any values that are not null and only adds the values that are null.
Thinking is a feeling; pleasant for some and unpleasant for others.
Anthony Clarke
posted  7 posts
since  Sep 25, 2010 
from 

 Re: Excel Interop - Please Help - Thanks
  Posted on: 06 Feb 2012        0  
Yes i dont get the null errors anymore but i get Unable to cast object of type 'System.String' to type 'System.Object[,]'. at the end of sheet 1

Any Ideas?
Vulpes
posted  5419 posts
since  Feb 28, 2011 
from 

 Re: Excel Interop - Please Help - Thanks
  Posted on: 06 Feb 2012   Accepted Answer     1  
My suspicion is that at least one sheet is empty and so the excelRange.get_Value is returning 'Empty' (which may get translated in .NET to string.Empty) rather than a two dimensional object array.

Also, as the Sheets collection is one-based, you should be iterating up to and including 'numSheets'.

So, I'd try:

private void Scansheets(Workbook wookBookIn)
{
   int numsheets = wookBookIn.Sheets.Count;

   for (int sheetNum = 1; sheetNum <= numsheets; sheetNum++)
   {
      Worksheet sheet = (Worksheet)wookBookIn.Sheets[sheetNum];
      Range excelRange = sheet.UsedRange;
      object temp = excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
      if (temp != null && (temp is Array))
      {
         object[,] valArray = (object[,])temp;
         foreach (object value in valArray)
         if (value != null)
         {
            listBox1.Items.Add(value);
         }
      }
   }
}  
Anthony Clarke
posted  7 posts
since  Sep 25, 2010 
from 

 Re: Excel Interop - Please Help - Thanks
  Posted on: 06 Feb 2012        0  
Perfect Vulpes, thanks alot :)

Yeah your right, i used for (int sheetNum = 1; sheetNum < (numsheets + 1); sheetNum++)

Works Perfectly :) Didnt think about testing to see whether it was the object that was NULL lol
Sam Hobbs
posted  6490 posts
since  Sep 07, 2009 
from  Los Angeles, California, USA

 Re: Excel Interop - Please Help - Thanks
  Posted on: 06 Feb 2012        1  
Note that I answered the question. After I answered the question, a new question was asked.
Thinking is a feeling; pleasant for some and unpleasant for others.
Anthony Clarke
posted  7 posts
since  Sep 25, 2010 
from 

 Re: Excel Interop - Please Help - Thanks
  Posted on: 08 Feb 2012        0  
Hi Sam,

Thanks for your help but the 2nd question was part of my original question. It was only that Vulpes answer completely answered my question so i marked as correct.

But still i thank you for your response and I am grateful.

Regards
Anthony
       
Dynamic PDF
ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications. Visit DynamicPDF here
Introducing MaxV - one click. infinite control. Hyper-V Hosting from MaximumASP.
Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Nevron Chart for .NET 2010.1 Now Available
The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
ASP.NET 4 Hosting
Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!

 Hosted by MaximumASP  |  Found a broken link?  |  Contact Us  |  Terms & conditions  |  Privacy Policy  |  Site Map  |  Advertise with us
Current Version: 5.2011.3.12
 © 1999 - 2012  Mindcracker LLC. All Rights Reserved