none
如何將資料寫入Excel儲存格內 RRS feed

  • 問題

  • 1.我使用下例語法連結與開啟Excel檔案
    Dim Connection As New System.Data.OleDb.OleDbConnection("provider='Microsoft.Jet.OLEDB.4.0';" & "data source=TestExcel.xls;Extended Properties='Excel 8.0;IMEX=1;'")

    Dim Adapter As New System.Data.OleDb.OleDbDataAdapter("select * from [data$]", Connection)
    Connection.Open()

    2.我要使用 SELECT INTO 語法, 將資料寫入Excel 資料表的某一儲存格內, 如第 10 列, 第 K 行儲存格, 請問  SELECT INTO 語法該怎麼寫.

    謝謝

     

    2011年9月1日 下午 03:45

解答

  • Dear

    Select Into 通常是把另一資料集塞到另一個資料集,而您的需求為針對cell塞值

    應該用Insert into就好了

    請參考:http://support.microsoft.com/kb/316934

     


    Shadowと愉快なコード達
    • 已標示為解答 170 2011年9月5日 下午 03:52
    2011年9月1日 下午 04:56
    • 已標示為解答 170 2011年9月5日 下午 03:52
    2011年9月2日 上午 02:50
  • Oledb 只能將 Excel 檔當成資料庫存取,你沒辦法確認哪列在 Excel 會存在哪。

    要明確存在哪的話,請使用 automation ,請到隔壁 Office 開發討論區查看既有討論。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 170 2011年9月5日 下午 03:53
    2011年9月2日 下午 03:33
  • 你沒辦法把 oledb 的 IN 子句資料來源指向物件。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 170 2011年9月11日 下午 01:48
    2011年9月10日 下午 02:11

所有回覆

  • Dear

    Select Into 通常是把另一資料集塞到另一個資料集,而您的需求為針對cell塞值

    應該用Insert into就好了

    請參考:http://support.microsoft.com/kb/316934

     


    Shadowと愉快なコード達
    • 已標示為解答 170 2011年9月5日 下午 03:52
    2011年9月1日 下午 04:56
    • 已標示為解答 170 2011年9月5日 下午 03:52
    2011年9月2日 上午 02:50
  • 1.感謝說明,我瀏覽過說明了.

    2.由於我是要將資料寫入Excel的某一儲存格內, 如 F10, F11 於是編寫程式碼如下:

    Dim conn As New System.Data.OleDb.OleDbConnection("provider='Microsoft.Jet.OLEDB.4.0';" & "data source=TestExcel.xls;Extended Properties='Excel 8.0;IMEX=1; HDR=NO;'")
    conn.Open()

    Dim Sqlcomm As String = "INSERT INTO [data$] (F10, F11) values ('111', 'ABC')"
    Dim Comm As New OleDb.OleDbCommand(Sqlcomm, conn)

    Dim N As Integer = Comm.ExecuteNonQuery

    3.  程式執行到 Comm.ExecuteNonQuery 引發下例 [運作必須使用更新查詢]錯誤.

    請問我該如何排除此錯誤, 謝謝

    2011年9月2日 上午 07:22
  • 權限有開嗎?
    2011年9月2日 上午 07:27
  • 單機作業, 沒有權限問題, 謝謝

    2011年9月2日 上午 08:03
  • 你檔案有用 Excel 開著嗎?

    或是有被其他程式鎖定?


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    2011年9月2日 上午 10:49
    版主
  • 1.感謝指導. 經不斷的測試, 應該是 HDR=NO 設定的問題, 若將它取消就不會有上例錯誤訊息.

    2.若取消HDR=NO, 請問該如何指定儲存格位置呢, 如 A10 該如何指定.

    3. 以tihs 大大的範例而言, 它是設定欄名稱, 在這種狀況下該如何標出列號呢?

    謝謝

    2011年9月2日 下午 02:24
  • Oledb 只能將 Excel 檔當成資料庫存取,你沒辦法確認哪列在 Excel 會存在哪。

    要明確存在哪的話,請使用 automation ,請到隔壁 Office 開發討論區查看既有討論。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 170 2011年9月5日 下午 03:53
    2011年9月2日 下午 03:33
  • 1.各位大大您好, 因我必須將 DataSet 內的記錄整個寫入 Excel 檔案, 由於DataSet含有 150 欄(Columns), 若要使用 INSERT INTO [Sheet1$] x1, x2... values (?, ?....)方式編寫程式碼會很麻煩.

    2.請問該怎麼編寫 INSERT INTO 語法,才能成批將 DataSet 內的記錄寫入 Excel 檔案. 可用下例語法做嗎? 怎麼改寫才對?

    INSERT INTO [Sheet1$] IN 'C:\Book1.xls' 'Excel 8.0;' SELECT * FROM MyTable"

    謝謝. 

     

     


    • 已編輯 170 2011年9月10日 下午 02:05
    2011年9月10日 下午 02:02
  • 你沒辦法把 oledb 的 IN 子句資料來源指向物件。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 170 2011年9月11日 下午 01:48
    2011年9月10日 下午 02:11