ODBCを使用してC#からxls/xlsx
ファイルを作成します(Provider=Microsoft.ACE.OLEDB.12.0
)。結果テーブルには4行(たとえば)があります。 Excelでファイルを開き、5行目を追加してファイルを保存します。 ODBC経由でC#からで読み込もうとすると、5行目がなくても元の4行しか得られません。 ODBCはXLSファイルのどこかに行数を格納し、後でExcelやLibreOfficeから入力した新しいデータを使わずに読み込みます。これは既知の問題ですか?それを解決できますか? Excelで新しいスプレッドシートを作成すると、その行はすべてC#で読み込まれます。ODBCドライバがExcelで追加された行を読み取ることができません
EDIT:役に立つ情報が見つかりました。 XLSファイルがC#/ ODBCから最初に作成されるとき、2つのテーブル(シート)があります。テーブル名がTABLEの場合、DataTable sheets = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null)
にはsheets.Rows[0]
== "TABLE"とsheets.Rows[1]
== "TABLE $"が含まれます。 Excelは1枚の "TABLE"シートのみを表示します。編集後、変更内容(5行目)は "TABLE $"シートのみに存在します。
スプレッドシートの特定の行の値をチェックすると、不要な余分な文字が保存されないことがあります。 –
コードが表示されないと、手助けが困難になります。 ODBC接続でリフレッシュを実行しますか:https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.odbcconnection.refresh.aspx – PaulF