xlwt を使用して、大量の csv ファイルを Excel ファイルに変換しました。その後、これらの Excel ファイルを SAS (統計ソフトウェア) にインポートする必要があります。
最初の試行で、SAS はファイル形式が無効であることを示すエラーをスローします。
しかし、生成されたファイルを MS Excel で開いて、何も変更せず、ファイルを保存せずに閉じると、SAS に正常にインポートされます。
MS Excel がファイル ヘッダーを変更し、そこに現在のユーザー名を追加し、ファイルの更新日を更新することがわかりました。
保存する前に、Excel ファイルのバイナリ ヘッダーを変更する可能性はあるのでしょうか。
更新: xlwt バージョン 0.7.4、Python 2.7.3、SAS 9.3、Excel 2010、Windows 7 32 ビットを使用しています。
これは、CSV を Excel に変換するコードの一部です。
wb = xlwt.Workbook(encoding='latin-1')
ws = wb.add_sheet('Sheet1')
sourceCSV = csv.reader(open(files, 'rb'), delimiter=";")
for rowi, row in enumerate(sourceCSV):
for coli, value in enumerate(row):
ws.write(rowi, coli, value)
wb.save(xls_file)
SAS インポート機能で使用されるオプションは次のとおりです。
...
DBMS=EXCEL REPLACE;
RANGE="Sheet1$";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
...
SAS が生成するエラーは次のとおりです。
ERROR: Connect: External table is not in expected format.
ERROR: Error in the LIBNAME statement.