Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Visual Basic
  4. Importing XLS file to DataTable

Importing XLS file to DataTable

Scheduled Pinned Locked Moved Visual Basic
databasequestionlearning
13 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D dan sh

    where have you declared your data table? Couldn't see the definition in the code you have posted.

    "If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry

    C Offline
    C Offline
    Codemonkey85
    wrote on last edited by
    #3

    Whoops!

    Imports Microsoft.Office.Interop
    Imports System.Runtime.InteropServices
    Imports Microsoft
    Imports System.Data
    Imports System.Data.OleDb

    Public Class Form1
    Dim WithEvents xlBook As Excel.Workbook

    'DataTable:
    '104 Rows
    '91 Columns
    '\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
    Dim ItemDataTable As DataTable
    '\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
    Dim con As OleDbConnection
    Dim da As OleDbDataAdapter
    Dim ds As New DataSet
    Dim fileName As String = ""
    Dim New\_Column As DataColumn
    Dim New\_Row As DataRow
    
    Dim ItemTable As New DataTable
    

    Some of this stuff is unused in this example, like the OleDb stuff.

    As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

    D 1 Reply Last reply
    0
    • C Codemonkey85

      Whoops!

      Imports Microsoft.Office.Interop
      Imports System.Runtime.InteropServices
      Imports Microsoft
      Imports System.Data
      Imports System.Data.OleDb

      Public Class Form1
      Dim WithEvents xlBook As Excel.Workbook

      'DataTable:
      '104 Rows
      '91 Columns
      '\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
      Dim ItemDataTable As DataTable
      '\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
      Dim con As OleDbConnection
      Dim da As OleDbDataAdapter
      Dim ds As New DataSet
      Dim fileName As String = ""
      Dim New\_Column As DataColumn
      Dim New\_Row As DataRow
      
      Dim ItemTable As New DataTable
      

      Some of this stuff is unused in this example, like the OleDb stuff.

      As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

      D Offline
      D Offline
      dan sh
      wrote on last edited by
      #4

      CodeMonkey85 wrote:

      Dim ItemDataTable As DataTable

      You have declared this table but not defined it. It must be null and hence the exception.

      "If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry

      C 1 Reply Last reply
      0
      • D dan sh

        CodeMonkey85 wrote:

        Dim ItemDataTable As DataTable

        You have declared this table but not defined it. It must be null and hence the exception.

        "If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry

        C Offline
        C Offline
        Codemonkey85
        wrote on last edited by
        #5

        How would I define a DataTable? By the looks of it, you specify it as a source for another object or something. This might not even be the right way to do what I want to do, bear in mind. I'm looking for any easy way to store the data from my sheet so that I can programmatically retrieve it.

        As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

        D 1 Reply Last reply
        0
        • C Codemonkey85

          What I want to do for my company is turn our price book into a desktop application. I figured I could use an external file for the price data, for future editing purposes. I've been trying to do this in different ways for a while now, and it's sort of frustrating (this is my first real exposure to database programming and the like). So I'm trying to read an Excel File into a DataTable. I have a sub going, but for some reason I keep getting a null reference exception: System.NullReferenceException was unhandled Message="Object reference not set to an instance of an object."

          Private Sub ReadExcelData()
              'Try
          
              xlBook = GetObject("C:\\Documents and Settings\\Administrator.OFFICE2\\Desktop\\Michael\\All\_Item\_Prices\_2008.xls")
              Dim xlsSheet As Excel.Worksheet = xlBook.Worksheets(1)
          
              xlBook.Application.Visible = True
              xlBook.Windows(1).Visible = True
              xlBook.Application.WindowState = Excel.XlWindowState.xlMinimized
          
              Dim irow As Integer = 1
              Dim icol As Integer = 1
          
              'DataTable:
              '104 Rows
              '91 Columns icol irow
          
              'For icol = 1 To 91
          
              'xlsSheet.Cells(ROW, COLUMN).value
              MsgBox(xlsSheet.Cells(1, icol).Value.ToString)
              If xlsSheet.Cells(1, icol).Value <> Nothing Then
                  New\_Column = New DataColumn \_
                  (xlsSheet.Cells(1, icol).Value.ToString)
              Else
                  New\_Column = New DataColumn("FILLER " & icol)
              End If
              '\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
              'NULL REFERENCE HAPPENS HERE
              ItemDataTable.Columns.Add(New\_Column)
              'NULL REFERENCE HAPPENS HERE
              '\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
              'For irow = 1 To 104
              'MsgBox(xlsSheet.Cells(irow, icol).Value)
              'ItemDataTable.Rows.Add = xlsSheet.Cells(irow, icol).Value.ToString
              New\_Row = ItemTable.NewRow
              New\_Row.Item(icol) = xlsSheet.Cells(irow, icol).Value.ToString
              'Next
              'Next
          
             'Catch
              'End Try
          End Sub
          

          If someone can tell me either what I'm doing wrong, or knows a better way (I have all of the prices and stuff saved as an Excel spreadsheet), please let me know. I would really appreciate it!

          As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

          D Offline
          D Offline
          DrukenProgrammer
          wrote on last edited by
          #6

          Hello Friend, You can use excel sheet as database it self and can retrieve data using a oledb connection to it from your application, or Manually you can do it by ->Go to access ->Create a new blank database ->Now go to File, GetExternal Data, Import ->after clicking import you you will get file dialog open, just select your excel spreadsheet in it.. rest of things you can do it easily... call this acess database easily from your application if you feel it easy. Thanks

          C 1 Reply Last reply
          0
          • D DrukenProgrammer

            Hello Friend, You can use excel sheet as database it self and can retrieve data using a oledb connection to it from your application, or Manually you can do it by ->Go to access ->Create a new blank database ->Now go to File, GetExternal Data, Import ->after clicking import you you will get file dialog open, just select your excel spreadsheet in it.. rest of things you can do it easily... call this acess database easily from your application if you feel it easy. Thanks

            C Offline
            C Offline
            Codemonkey85
            wrote on last edited by
            #7

            Yeah, I tried using oledb before, and for some reason certain cells came up blank for no apparent reason. I dunno. I could try that Access thing too, I guess. Frankly, I'm about to pull my hair out on this one. Thanks!

            As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

            D 1 Reply Last reply
            0
            • C Codemonkey85

              Yeah, I tried using oledb before, and for some reason certain cells came up blank for no apparent reason. I dunno. I could try that Access thing too, I guess. Frankly, I'm about to pull my hair out on this one. Thanks!

              As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

              D Offline
              D Offline
              DrukenProgrammer
              wrote on last edited by
              #8

              access thing should work fine for you buddy, :) :)

              C 1 Reply Last reply
              0
              • C Codemonkey85

                How would I define a DataTable? By the looks of it, you specify it as a source for another object or something. This might not even be the right way to do what I want to do, bear in mind. I'm looking for any easy way to store the data from my sheet so that I can programmatically retrieve it.

                As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

                D Offline
                D Offline
                dan sh
                wrote on last edited by
                #9

                In that case, you can use Excel as any other database. You can connect to it. Run SQL queries. Do many things. If you want ot get ths into a grid, then a sinmple google search will help you.

                "If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry

                C 1 Reply Last reply
                0
                • D dan sh

                  In that case, you can use Excel as any other database. You can connect to it. Run SQL queries. Do many things. If you want ot get ths into a grid, then a sinmple google search will help you.

                  "If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry

                  C Offline
                  C Offline
                  Codemonkey85
                  wrote on last edited by
                  #10

                  I have done many things. And I've performed at least ten Google searches and tried everything I've seen. But for some unbeknownst reason to me, I can't seem to get what I want. It seems like it should be a simple matter to read data from a spreadsheet and use that data as you please, but for example, I can't seem to retrieve the correct data from my DataTable even when I think I finally populated it with the spreadsheet data. I don't think it was even meant to be used that way, honestly.

                  As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

                  1 Reply Last reply
                  0
                  • D DrukenProgrammer

                    access thing should work fine for you buddy, :) :)

                    C Offline
                    C Offline
                    Codemonkey85
                    wrote on last edited by
                    #11

                    Yeah, I'm now trying to figure out how to read data from the Access file.

                    As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

                    D 1 Reply Last reply
                    0
                    • C Codemonkey85

                      Yeah, I'm now trying to figure out how to read data from the Access file.

                      As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

                      D Offline
                      D Offline
                      DrukenProgrammer
                      wrote on last edited by
                      #12

                      Dim connect As New OleDbConnection connect.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=yourdatabase.mdb;Persist Security Info=True" connect.Open() your code and sql here.. connect.Close()

                      C 1 Reply Last reply
                      0
                      • D DrukenProgrammer

                        Dim connect As New OleDbConnection connect.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=yourdatabase.mdb;Persist Security Info=True" connect.Open() your code and sql here.. connect.Close()

                        C Offline
                        C Offline
                        Codemonkey85
                        wrote on last edited by
                        #13

                        Yeah, tried that... see this thread[^] I dunno. I'll keep trying different things, but if anyone has ever done anything like this again and has some code (or can at least figure out what's wrong with my code), I would appreciate it a bunch. Thanks!

                        As I sit here, I contemplate the last words of Socrates: "I drank what?". Pokémon Pearl Friend Code: 4554-2418-6836

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups