我有一个大型excel文件,用于聚合多个客户端的问题跟踪,我需要根据客户端将其划分为较小的文件。
这是我到目前为止所做的:我已经构建了一个 python 脚本,该脚本将文件分成适当的客户端特定文件,并将正确的标题行应用于所有文件,但它生成丑陋的CSV。我的老板想要应用一些格式,所以我需要做的是(对于目录中的所有CSV):
将每个文件从CSV转换为.xls(或.xlsx),以便保存格式
自动调整列宽
将第一行加粗(并可能将颜色应用于行)
到目前为止,我猜我可以使用pyWin32或pyExcelerator执行此操作,但考虑到我要做的更改的最小化,可能更容易做到这一点VB脚本或宏或什么的,但我真的不知道那些工具。
答案 0 :(得分:4)
最简单的方法是使用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
编辑:
为代码添加了额外的格式