我使用ODBC從C#創建xls/xlsx
文件(使用Provider=Microsoft.ACE.OLEDB.12.0
)。結果表格有4行(例如)。我用Excel打開文件,添加第5行並保存文件。當試圖從C#通過ODBC讀取它時,我只能得到原來的4行而沒有第5行。看起來ODBC在XLS文件的某處存儲了行數,後來只讀取了它們,而沒有從Excel或LibreOffice輸入新數據。這是已知的問題,我能解決嗎?如果我在Excel中創建新的電子表格,它的所有行都從C#中讀取。ODBC驅動程序無法讀取在Excel中添加的行
編輯:我發現了一些有用的信息。當首次從C#/ ODBC創建XLS文件時,有2個表格(工作表)。如果表格名稱是TABLE,DataTable sheets = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null)
將包含sheets.Rows[0]
==「TABLE」和sheets.Rows[1]
==「TABLE $」。 Excel將只顯示一張工作表「TABLE」。編輯後,只有「TABLE $」表中存在更改(第5行)。
檢查電子表格中的特定行值也許有不必要的額外字符,這就是爲什麼它拒絕保存。 –
如果沒有看到任何代碼,就很難提供幫助。您是否在ODBC連接上執行刷新:https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.odbcconnection.refresh.aspx – PaulF