2015-04-21 34 views
1

我想寫一個數據幀到Excel這樣的:寫入數據幀到Excel與寬列

df = DataFrame({'Frequency':lenFreq,'Fatigue Thrust [N]':meqThrust[iexcel],'Extreme Thrust [N]':extremeThrust[iexcel],'Extreme Thrust DMR [N]':extremeThrustDMR[iexcel],\ 
       'Fatigue Yaw [Nm]':meqYaw[iexcel],'Extreme Yaw [Nm]':extremeYaw[iexcel],'Extreme Flapwise [Nm]':extremeFlapwise[iexcel][ilenFreq]}) 

    df.to_excel(workbookOutput, sheet_name='Results', index=False) 

但我每次打開文件時,我需要擴展列:

enter image description here

我想知道在寫入excel時自動擴展列的選項。由於

+1

熊貓開發[排除了這一可能性的範圍](https://github.com/pydata/pandas/issues/4049)。你可能會發現這些答案中的一些方向http://stackoverflow.com/questions/6929115/ – Zero

+0

相關,如果不是徹底重複:http://stackoverflow.com/questions/17326973/is-there-a-way-to-自動調整excel-column-widths-with-pandas-excelwriter(這甚至在由@JohnGalt鏈接到的Pandas問題跟蹤程序線程中提到)。 –

回答

1

我不認爲有一種方法可以直接重新大小的Excel單元格,當你調用df.to_excel()但這裏是一個辦法做到這一點的是調用後

df = DataFrame({'Frequency':lenFreq,'Fatigue Thrust [N]':meqThrust[iexcel],'Extreme Thrust [N]':extremeThrust[iexcel],'Extreme Thrust DMR [N]':extremeThrustDMR[iexcel],\ 
      'Fatigue Yaw [Nm]':meqYaw[iexcel],'Extreme Yaw [Nm]':extremeYaw[iexcel],'Extreme Flapwise [Nm]':extremeFlapwise[iexcel][ilenFreq]}) 

df.to_excel(workbookOutput, sheet_name='Results', index=False) 

sheet = workbookOutput.sheet_by_name('Results') 
nrows = len(sheet.get_rows()) 
ncolumns = len(sheet.get_cols()) 

for row_index in range (nrows): 
    for column_index in range(ncolumns) : 
     cwidth = sheet.col(column_index).width 
     column_data = sheet.cell(row_index,column_index).value 
     if (len(column_data)*367) > cwidth: 
      sheet.col(column_index).width = (len(column_data)*367)