久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Powershell 對Excel文件的幾種操作方法

 F2967527 2022-06-26 發(fā)布于北京

一,、如何通過powershell打開一個Excel表格,,

1 $file_excel = Get-Item ('D:\Powershell_test\test.xlsx')
2 $Excel = New-Object -ComObject Excel.Application
3 $Excel.Visible = $true 4 $WorkBook = $Excel.Workbooks.Open($file_excel)
5 $WorkSheet = $Workbook.Sheets.Item('Status')
6 $SheetRow = $WorkSheet.UsedRange.Rows.Count
1、第一行是通過Get-Item把D盤Powershell_test文件夾下的test.xlsx這個對象賦給$file_excel這個變量,。
2,、第二行是新建一個Excel對象,并將值賦給$Excel變量

3,、第三行是如果希望屏幕上顯示Excel圖形界面,,設(shè)值為$true,否則為$false,或者直接不寫這行代碼,。
4,、第四行是將test.xlsx加載進Excel程序
5、第五行是鎖定要操作的sheet,,“Status”為sheet名稱,,請根據(jù)實際情況替換“status”
6、第六行中的$SheetRow統(tǒng)計出來的行數(shù)往往不準確,,如果表格中的最后幾行數(shù)據(jù)被認為的“清除內(nèi)容”了,,而不是整行刪除了,那么統(tǒng)計出來的數(shù)字就會不準,。
7,、如果想要準確的數(shù)字,可以使用如下循環(huán)的方法獲得:
1 $excel_count =0 2 for($b = 1; $b -le $SheetRow; $b++) 3 { 4 if($WorkSheet.Cells.item($b,1).text -ne '') #$b代表行數(shù)變量,,數(shù)字1代表的是表格中的列,,通過對$b的循環(huán),獲得有效行數(shù) 5 { 6 $excel_count++ 7 } 8 }

最后的$excel_count的值就是準確的,。

二,、設(shè)置表格的邊框

$WorkSheet.Cells.item(1,1).borders.LineStyle = 1

1、$WorkSheet.Cells.item(1,1)中的(1,1)代表的是第一行中的第一列方格,。請根據(jù)實際需要替換

三,、設(shè)置表格底色

$WorkSheet.Cells.item($excel_next_valid_row,1).font.size = 10

1、等號右邊的10用來調(diào)節(jié)顏色,,不同的顏色數(shù)字不一樣,,請根據(jù)實際需求對10進行變化,。

四、關(guān)閉Excel的進程函數(shù),,一般放在腳本的最上方,當(dāng)Excel處理完畢需要保存并關(guān)閉Excel進程時,,需要調(diào)用這個函數(shù),,具體見下面的代碼

function close-excel ($ref) {
([System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$ref))
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
}

五、保存Excel并關(guān)閉Excel進程

1 $WorkBook.save() 2 $Excel.Workbooks.Close() 3 $Excel.Quit() 4 close-excel($WorkSheet) 5 close-excel($WorkBook) 6 close-excel($Excel)

1,、如果需要將Excel另存為,,需要將$WorkBook.save()變?yōu)?span>$WorkBook.savesa('c:\123\'),文件將會被另存在C盤目錄123下。

六,、Copy整列數(shù)據(jù)

 1 $file = “C:\test\test.xlsx” 
 2 $Excel = New-Object -ComObject excel.application 
 3 $Excel.visible = $true
 4 $Workbook = $excel.Workbooks.open($file) 
 5 $Worksheet = $Workbook.WorkSheets.item(“test”) 
 6 $worksheet.activate()  
 7 $range = $WorkSheet.Range(“A1:B1”).EntireColumn 
 8 $range.Copy() | out-null text
 9 $Worksheet = $Workbook.Worksheets.item(2) 
10 $Range = $Worksheet.Range(“D1”) 
11 $Worksheet.Paste($range)  

1,、上面的操作是將test.xlsx中的第一個sheet中的A1和B1的整列數(shù)據(jù)拷貝到第二個sheet的D1開始的列,如果是拷貝行的話,,把代碼的第七行中的EntireColumn換成EntireRow,。如拷貝A1到A100的數(shù)據(jù),$range = $WorkSheet.Range(“A1:A100”).EntireRow

七,、在Excel中搜索特定字符串,,找到后返回行標,該代碼可以替換以for循環(huán)為基礎(chǔ)的搜索,。比for循環(huán)要快的多

1 #以下代碼可以在電腦屏幕中輸出多個符合搜索條件的行標,,如果要輸出多個列標,第10行代碼可以替換為$Column = $Target.Column() 2 #如果要限定搜多范圍,,比如只在C列搜索,,則第4行換成$Range = $WorkSheet.Range('C:C') 3 $SearchString = \'abc\' #在excel中搜索“abc”這個字符串 4 $Range = $WorkSheet.UsedRange 5 $Target = $Range.Find($SearchString) 6 7 $First = $Target 8 Do 9 { 10 $row_NO = $Target.row() 11 Write-Host $row_NO 12 $Target = $Range.FindNext($Target) 13 } 14 While ($Target -ne $NULL -and $Target.row -ne $First.row)

八、刪除sheet中的所有有內(nèi)容的行

1 $Sheetrow=$WorkSheet.UsedRange.Rows.Count
2 $Worksheet.Rows.Delete($sheetrow)

九,、刪除sheet中的指定行

$Worksheet.Range('A2:A9').EntireRow.delete()

 十,、查看指定列的有效行

$ExcelPath = Get-Item \'F:\xxx.xlsx\'
$xldown
= -4121 # see: http://msdn.microsoft.com/en-us/library/bb241212(v=office.12).aspx $xlup = -4162 $Excel = New-Object -ComObject Excel.Application $Excel.Visible = $True $WordBook = $Excel.Workbooks.Open($ExcelPath) $WorkSheet = $Excel.WorkSheets.item('Sheet1') $WorkSheet.activate() # Find the last used cell $lastRow = $Worksheet.cells.Range('A1048576').End($xlup).row

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多