Powershell export-csv nối thêm bảng tính mới

Quản trị viên hệ thống và người dùng có quyền sử dụng Windows PowerShell để thực hiện tất cả các loại tác vụ quản trị và nâng cao. Với PowerShell, quản trị viên có thể thực thi các chương trình viết kịch bản mạnh mẽ hoặc chuyển đổi nhiều loại tệp từ định dạng này sang định dạng khác. Một trong những cách sử dụng PowerShell phổ biến nhất là tạo danh sách các quy trình đang chạy trên máy tính, sau đó xuất nó ở định dạng CSV để phân tích trong Microsoft Excel hoặc các ứng dụng hỗ trợ CSV khác. Tuy nhiên, bằng cách sử dụng một số mã kịch bản tương đối đơn giản, bạn cũng có thể sử dụng PowerShell để chuyển đổi tệp CSV danh sách quy trình sang định dạng Excel XLSX. Ngoài việc chuyển đổi đơn giản, PowerShell còn cho phép bạn thêm vào nội dung của các tệp này

  1. 1

    Nhấp vào nút “Bắt đầu”, sau đó nhấp vào “Tất cả chương trình. ” Nhấp vào thư mục chương trình “Phụ kiện”, sau đó nhấp vào “Windows PowerShell. ” Nhấp vào “Windows PowerShell ISE” để mở cửa sổ trình soạn thảo PowerShell

  2. 2

    Gõ “CD. \” tại dấu nhắc “>” để di chuyển vào thư mục gốc của máy tính của bạn. Nhập lệnh sau tại dấu nhắc “>”

    quá trình nhận. xuất-csv. \runningprocesses. csv

    Nhấn phím “Enter”. PowerShell tạo một tệp văn bản định dạng CSV có tên là “runningprocesses. csv” và lưu trữ nó trong thư mục gốc của “C. \" lái xe

  3. 3

    Lặp lại lệnh “get- process” tại dấu nhắc “>” của Windows PowerShell để truy xuất danh sách cập nhật các quy trình đang chạy và tạo tệp thứ hai. Nhập cú pháp theo định dạng sau

    quá trình nhận. xuất-csv. \runningprocesses2. csv

    Sau khi bạn nhấn phím “Enter”, có hai tệp CSV trên “C. \" lái xe. quy trình đang chạy. csv và quy trình đang chạy2. csv. Thu nhỏ cửa sổ PowerShell xuống thanh tác vụ Windows

  4. 4

    Mở Windows Notepad và dán đoạn mã sau vào cửa sổ soạn thảo văn bản trống

    Chức năng phát hành-Ref ($ref) { ([Hệ thống. thời gian chạy. dịch vụ tương tác. nguyên soái]. ReleaseComObject( [Hệ thống. __ComObject]$ref) -gt 0) [Hệ thống. GC]. Thu thập () [Hệ thống. GC]. WaitForPendingFinalizers() } Hàm ConvertAppendCSVXLSX { <#

    >Yêu cầu -phiên bản 2. 0

    [CmdletBinding( SupportsShouldProcess = $True, ConfirmImpact = 'low', DefaultParameterSetName = 'file' )] Tham số (
    [Parameter( ValueFromPipeline=$True, Position=0, Bắt buộc . \" #Tìm số lượng CSV được nhập $count = ($inputfile. đếm -1) #Tạo đối tượng Excel Com $excel = new-object -com excel. ứng dụng #Disable cảnh báo $excel. DisplayAlerts = $False #Hiển thị ứng dụng Excel $excel. Hiển thị = $False #Thêm sổ làm việc $workbook = $excel. sách bài tập. Add() #Remove other worksheets $workbook. bảng tính. Mục(2). delete() #Sau khi trang tính đầu tiên bị xóa, trang tính tiếp theo sẽ thay thế $workbook. bảng tính. Mục(2). delete()
    ) Begin {
    #Configure regular expression to match full path of each file [regex]$regex = "^\w\:\" #Find the number of CSVs being imported $count = ($inputfile.count -1) #Create Excel Com Object $excel = new-object -com excel.application #Disable alerts $excel.DisplayAlerts = $False #Show Excel application $excel.Visible = $False #Add workbook $workbook = $excel.workbooks.Add() #Remove other worksheets $workbook.worksheets.Item(2).delete() #After the first worksheet is removed,the next one takes its place $workbook.worksheets.Item(2).delete()
    #Xác định số trang tính ban đầu $i = 1 } Quy trình { ForEach ($input in $inputfile) { #Nếu có nhiều hơn một tệp, hãy tạo một trang tính khác cho mỗi tệp If ($i . bảng tính. Cộng(). Out-Null } #Sử dụng trang tính đầu tiên trong sổ làm việc (cũng là trang tính được tạo mới nhất luôn là 1) $worksheet = $workbook. bảng tính. Mục(1) #Add name of CSV as worksheet name $worksheet. tên = "$((GCI $input). basename)" #Mở tệp CSV trong Excel, phải được chuyển đổi thành đường dẫn đầy đủ nếu chưa được thực hiện If ($regex. ismatch($input)) { $temppcsv = $excel. sách bài tập. Mở($input) } ElseIf ($regex. ismatch("$($input. họ tên)")) { $temppcsv = $excel. sách bài tập. Mở("$($input. họ tên)") }
    Khác {
    $tempcsv = $excel. sách bài tập. Mở("$($pwd)\$input")
    } $tempsheet = $temppcsv. bảng tính. Mục(1) #Copy nội dung của tệp CSV $tempSheet. Phạm vi đã sử dụng. sao chép(). Out-Null #Paste nội dung của CSV vào $worksheet sổ làm việc hiện có. Paste() #Đóng sổ làm việc tạm thời $temppcsv. close() #Chọn tất cả các ô đã sử dụng $range = $worksheet. usedRange #Autofit các cột $range. Toàn bộ cột. Tự động điều chỉnh(). out-null $i++ } }
    End { #Save bảng tính $workbook. saveas("$pwd\$output") Write-Host -Fore Green "Tệp được lưu vào $pwd\$output" #Close Excel $excel. quit()
    #Release process for Excel $a = Release-Ref($range) } } }

  5. 5

    Nhấp vào “Tệp”, sau đó “Lưu dưới dạng” trên thanh menu Notepad. Lưu tệp văn bản mới với tệp “ConvertAppendCSVXLSX. ps1” trong thư mục gốc của “C. \" lái xe. Đóng Windows Notepad

  6. 6

    Phóng to cửa sổ PowerShell. Nhập lệnh sau tại dấu nhắc “>”

    ConvertAppendCSVXLSX -inputfile @(“runningprocesses. csv”,”runninngprocesses2. csv”) -đầu ra 'ProcessesReport. xlsx'

    Nhấn phím “Enter”. Windows PowerShell phân tích cú pháp các quy trình đang chạy. csv và xuất nội dung của nó sang tệp Excel có tên “ProcessesReport. xlsx” trong “C. \” thư mục gốc của ổ đĩa. Sau đó, thường trình sẽ nối thêm nội dung của tệp “runningprocesses2. csv” sang tệp Excel mới

  7. 7

    Đóng cửa sổ trình soạn thảo Windows PowerShell, rồi mở Microsoft Excel. Mở “Báo cáo quy trình. xlsx” trên “C. \” để xem danh sách các quy trình đang chạy vào thời điểm bạn tạo tệp CSV gốc bằng PowerShell

    Làm cách nào để nối một hàng mới vào tệp CSV PowerShell hiện có?

    Để chỉ cần thêm vào một tệp trong powershell, bạn có thể sử dụng add-content .

    CSV có thể có nhiều trang tính không?

    csv là một định dạng tệp văn bản đơn giản. Không thể lưu trữ nhiều trang tính , bảng tổng hợp hoặc bất kỳ tính năng nâng cao nào khác.