Dav*_*arx 1 python excel vba batch-file excel-vba
我有一个很大的excel文件,该文件用于汇总对多个客户端的问题的跟踪,我需要根据客户端将其分成较小的文件。
到目前为止,这是我得到的:我构建了一个python脚本,将该文件分为适当的客户端特定文件,并将正确的标头行应用于所有这些文件,但它会生成难看的CSV。我的老板想应用一些格式,所以我需要做的是(对于目录中的所有CSV):
将每个文件从CSV转换为.xls(或.xlsx),以便保存格式
自动调整列宽
将第一行设为粗体(并可能在行中应用颜色)
到目前为止,我猜测我可能可以使用pyWin32或pyExcelerator做到这一点,但是考虑到我要进行的最小更改是将其作为VB脚本或宏之类的方法可能会更容易,但是我没有真的不知道那些工具。
最简单的方法是使用 VBA
这是一个快速的宏,用于循环打开csv的文件夹,应用自动调整并另存为 .xlsx
注意:
Sub FormatCSVs()
Dim fso As FileSystemObject
Dim pth As String
Dim fl As File
Dim wb As Workbook
Set fso = New FileSystemObject
pth = "C:\Test" ' <-- replace with your path, or add a folder selection dialog
For Each fl In fso.GetFolder(pth).Files
If StrComp(fso.GetExtensionName(fl.Path), "csv", vbTextCompare) = 0 Then
Set wb = Workbooks.Open(fl.Path)
With wb.Sheets(1)
.UsedRange.EntireColumn.AutoFit
.Rows(1).Font.Bold = True
.Rows(1).Interior.ColorIndex = 3
End With
wb.SaveAs pth & "\" & fso.GetBaseName(fl.Path), xlOpenXMLWorkbook
' or use xlExcel8 for .xls
wb.Close
End If
Next
Set fl = Nothing
Set fso = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
编辑:
添加到代码的其他格式
| 归档时间: |
|
| 查看次数: |
1544 次 |
| 最近记录: |