-2

我的 python 脚本生成大约 1000 个文件(从网站上抓取数据)。我正在使用以下代码生成 excel 文件:

cols = ['Hour','Temp','Weather','Wind','Direction','Humidity','Barometer','Visibility']
df = pd.DataFrame(data, columns=cols)
df.to_csv(year + '\\' + filename + ".csv", sep=',', index=False, mode='w')

如您所见,我使用逗号作为分隔符,并且我想在 Excel 中对所有生成的文件执行 Text to Column 操作。当然,我可以手动完成,这将非常浪费时间和精力。那么如何以编程方式在所有 excel 文件中调用“文本到列”操作?我更喜欢在我的 python 脚本中执行此操作,但如果这不可能,我该如何使用 VBA 来执行此操作?我是 VBA 的新手,所以我非常感谢任何帮助。

4

1 回答 1

1

您可以尝试将文本列在 VBA 宏中,并将其自动应用于每个打开的 excel 文件

'Declare the application event variable'
 Public WithEvents MonitorApp As Application

'Set the event variable be the Excel Application'


Private Sub Workbook_Open()

    Set MonitorApp = Application

End Sub

'This Macro will run whenever an Excel Workbooks is opened'

Private Sub MonitorApp_WorkbookOpen(ByVal Wb As Workbook) 

          Selection.TextToColumns _
          Destination:=Range("A2"), _
          DataType:=xlDelimited, _
          TextQualifier:=xlDoubleQuote, _
          ConsecutiveDelimiter:=False, _
          Tab:=True, _
          Semicolon:=False, _
          Comma:=False, _
          Space:=False, _
          Other:=True, _
          OtherChar:="-"

End Sub

或者参考这个:

pandas.DataFrame.to_excel DataFrame.to_excel(self, excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol= 0,引擎=无,merge_cells=True,编码=None,inf_rep='inf',详细=True,freeze_panes=None)

在列字段中,您将有一个您希望在 excel 文件中看到的列的列表。

于 2020-03-13T21:44:50.570 回答