none
Excel To Dataset RRS feed

  • 問題

  • 小弟有一個  Excel  匯入的時候 資料不見了,請問各位前輩為什麼會這樣

     Public Sub ShowExcelSheet(ByVal Filename As String, ByVal SheetName As String)
            Dim cs As String = (((("Data Source=" & Filename & ";" & "Provider=") + ProviderName & "Extended Properties=") + ExtendedString & "HDR=") + Hdr & "IMEX=") + IMEX

            Using cn As New OleDbConnection(cs)
                cn.Open()
                Dim qs As String = "select * from[" & SheetName & "]"
                Try
                    Using dr As New OleDbDataAdapter(qs, cn)
                        Dim dt As New DataTable()
                        dr.Fill(dt)
                        ExcelTb = dt
                        Me.DataGridView1.DataSource = dt
                    End Using
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                End Try
            End Using

        End Sub


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....


    2012年10月25日 上午 09:50

解答

  • 是的,改成0不行,改成1才可以,(2也不可以)

    這段code 是copy大陸某網站的,寶哥那邊只有讀寫模式,剛剛突然眼睛一亮,註解"有個數據..互混",就試了一下,寶哥那篇也是設定成1,

    原先以為只是讀取模式,裡面應該還有一些不知道的模式ㄏ ㄏ,我太淺啦哈哈哈


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....




    2012年10月26日 上午 07:24
  • 參考保哥的這篇文章

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    • 已提議為解答 亂馬客 2012年10月26日 上午 01:30
    • 已標示為解答 嘿嘿嘿的啦 2012年10月27日 上午 08:56
    2012年10月25日 下午 01:58

所有回覆

  • 試加回一個 $ 在 SheetName 和 ] 之間

    Using cn As New OleDbConnection(cs)
                cn.Open()
                Dim qs As String = "select * from[" & SheetName & "$]"
                Try
                    Using dr As New OleDbDataAdapter(qs, cn)
                        Dim dt As New DataTable()
                        dr.Fill(dt)
                        ExcelTb = dt
                        Me.DataGridView1.DataSource = dt
                    End Using
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                End Try
            End Using


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年10月25日 上午 10:07
  • 您好,
    您的Excel中沒有表頭列,所以connectionstring的HDR要為No,

    請參考:http://www.connectionstrings.com/excel

    "HDR=Yes;" indicates that the first row contains columnnames, not data. "HDR=No;" indicates the opposite.

    請問程式中 Hdr 目前的值是不是Yes呢? 所以它把第1列當成是column name了


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    • 已編輯 亂馬客 2012年10月25日 上午 10:26
    2012年10月25日 上午 10:23
  • 各位前輩好,小弟沒有把問題說清楚

    to MS MVP KenLin for VB.NET :

        小弟有把$字串帶入

    to 亂:

     Excel中沒有表頭列,所以connectionstring的HDR要為No,

    小弟不見的是 裡面的內容,因為小弟聽同事說 在同一欄位, 如果有英文,有純數字 ,會顯示不正常,結果小弟測試真的是這樣,

    程式都是呼叫此函數,。

    小弟修改了excel裡面所有的cell 儲存格格式都修改成文字也是一樣。

    2012年10月25日 下午 01:16
  • 參考保哥的這篇文章

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    • 已提議為解答 亂馬客 2012年10月26日 上午 01:30
    • 已標示為解答 嘿嘿嘿的啦 2012年10月27日 上午 08:56
    2012年10月25日 下午 01:58
  • 該格未匯入的內容原先是否為日期?或其他格式?

    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2012年10月25日 下午 03:52
  • 格式 都是通用格式,後來改成文字也是一樣,

    在 win 7 32 底下是有 找到 保哥那邊設定 ,

    不過在 win 7 64位元 專業版 底下找不到

    找不到 jet


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....

    2012年10月26日 上午 03:45
  • 看一下 HKLM\SOFTWARE\wow6432node

    HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\engines\excel


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    • 已編輯 亂馬客 2012年10月26日 上午 04:42
    2012年10月26日 上午 04:41
  • 小弟有設定為 0了 電腦重開過了,執行結果還是一樣


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....

    2012年10月26日 上午 05:34
  • 請問 你的 ExtendedString 的 value 是什麼?

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年10月26日 上午 06:46
  • 您好,小弟的值

    Private Const ProviderName As String = "Microsoft.Jet.OLEDB.4.0;" '2.提供者名稱 
        Private Const ExtendedString As String = "'Excel 8.0;" '3.Excel版本,Excel 8.0 針對Excel2000及以上版本,Excel5.0 針對Excel97。 
        Private Const Hdr As String = "Yes;" '4.第一行是否為標題 
        Private Const IMEX As String = "0';" '5.IMEX=1 通知驅動程序始終將「互混」數據列作為文本讀取 


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....

    2012年10月26日 上午 07:03
  • 請問你可否在 Using 前,把cs 的 value貼上來?


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年10月26日 上午 07:04
  • "Data Source=C:\Users\lm\Desktop\Book1.xls;Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=Yes;IMEX=0';"


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....

    2012年10月26日 上午 07:15
  • 各位大哥,我找到了

     Private Const IMEX As String = "0';" '5.IMEX=1 通知驅動程序始終將「互混」數據列作為文本讀取

    設定為1 


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....

    2012年10月26日 上午 07:18
  • 改為 1 後,結果可以了?

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年10月26日 上午 07:21
  • 是的,改成0不行,改成1才可以,(2也不可以)

    這段code 是copy大陸某網站的,寶哥那邊只有讀寫模式,剛剛突然眼睛一亮,註解"有個數據..互混",就試了一下,寶哥那篇也是設定成1,

    原先以為只是讀取模式,裡面應該還有一些不知道的模式ㄏ ㄏ,我太淺啦哈哈哈


    每天都在複製貼上,什麼時候才能自己寫出來~~哎.....




    2012年10月26日 上午 07:24