我使用xlwt將一堆csv文件轉換爲excel文件。 之後,我需要將這些excel文件導入SAS(統計軟件)。將xlwt生成的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.
您如何使用SAS訪問Excel文件?即:ODBC擴展(注 - 我從2004年起就沒有使用過SAS!) – 2013-03-08 10:23:47
另外 - 你可能更適合將CSV數據導入SAS – 2013-03-08 10:30:05
感謝您的回覆。實際上,SAS正在被統計人員使用,並且他們描述導入csv文件的問題在於,SAS根據CSV文件的第一個原始數據設置字段大小。如果稍後在文檔中有更長的字符串在這個領域SAS有問題處理它們。 正如我所見,Excel文件是使用SAS查詢語言導入的。不知道我的定義是否正確。 – 2013-03-08 10:39:52