ODBC (Provider=Microsoft.ACE.OLEDB.12.0
)를 사용하여 C#에서 xls/xlsx
파일을 만듭니다. 결과 테이블에는 4 개의 행이 있습니다 (예 :). Excel로 파일을 열고 다섯 번째 행을 추가하고 파일을 저장합니다. ODBC를 통해 C#에서 으로 읽으려고하면 5가없는 원래의 4 행만 얻습니다. ODBC는 XLS 파일의 어딘가에 행 번호를 저장하고 나중에 Excel 또는 LibreOffice에서 입력 한 새 데이터없이 읽는 것 같습니다. 이 문제는 알려진 것입니까? 해결할 수 있습니까? Excel에서 새 스프레드 시트를 만들면 모든 행이 fron C#으로 읽혀집니다.ODBC 드라이버가 Excel에서 추가 한 행을 읽을 수 없습니다.
편집 : 유용한 정보를 발견했습니다. C#/ODBC에서 XLS 파일을 처음 만들 때 두 개의 테이블 (시트)이 있습니다. 테이블 이름이 TABLE 인 경우 DataTable sheets = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null)
은 sheets.Rows[0]
== "TABLE"이고 sheets.Rows[1]
== "TABLE $"을 포함합니다. Excel은 "TABLE"시트 하나만 보여줍니다. 편집 후 (5 행) 변경 사항은 "TABLE $"시트에만 존재합니다.
스프레드 시트 특정 행 값을 검사하여 불필요한 추가 문자가 생겨 저장을 거부 한 것 같습니다. –
코드를 보지 않으면 도움이되지 않습니다. ODBC 연결에서 새로 고침을 수행합니까? https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.odbcconnection.refresh.aspx – PaulF