Processando arquivos Excel

Processando arquivos Excel

Eu tenho cerca de 40-50 arquivos Excel que contêm informações úteis nas primeiras células 20x25 e, em seguida, são descartadas além dessas células. Qual é a maneira mais fácil de limpar o lixo de todos os arquivos de uma só vez, de modo que apenas as primeiras células 20x25 permaneçam? Posso fazer isso usando o Powershell no Windows?

insira a descrição da imagem aqui

Responder1

IMHO, a maneira mais fácil de fazer isso é uma macro VBA no Excel:

Sub CleanFiles()
' for each file in a directory
'    open it, delete all cell content around the first 20x25 cells, write it back
' 2015-10-15

    Dim path As String, aFile As String
    Dim arr As Variant

    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.EnableEvents = False

    path = "D:\TEMP\xls\"          ' must have trailing backslash
    aFile = Dir(path & "*.xls")
    Do While aFile <> ""
        Application.StatusBar = aFile
        aFile = path & aFile
        Workbooks.Open (aFile)

        ' process file content
        arr = ActiveSheet.Range("A1:Y20")
        Cells.Clear
        ActiveSheet.Range("A1:Y20") = arr

        ' save and close WB
        ActiveWorkbook.Close True, aFile
        aFile = Dir
    Loop

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.EnableEvents = False
    Application.StatusBar = False
End Sub

Primeiro, a atualização da tela e as macros automáticas estão desativadas. Em seguida, uma pasta específica é verificada em busca de arquivos '*.xls' e cada arquivo é aberto. O conteúdo da área a ser preservada é salvo internamente, então toda a planilha é apagada e o conteúdo gravado de volta na planilha. Ao fechar o arquivo, ele é salvo sem aviso prévio.

Responder2

Você poderia fazer um Get-Content file.csv | select -First 25 | Export-Csv newfile.csvse quiser dizer as primeiras 20-25 linhas. Você poderia fazer a Get-Content -Header @("a","b","c") file.csv | Select a,b,c | Export-Csv newfile.csve assim por diante nessa ordem para selecionar até y, que seria sua 25ª coluna. Pode haver uma maneira melhor.

informação relacionada