返回顶部
位置:首页 > 文章资讯 > 办公软件>用电脑自带的PowerShell操纵excel
用电脑自带的PowerShell操纵excel

发布时间:2022-05-22

来源:本站整理

今天小编来聊聊用电脑自带的PowerShell操纵excel。如果客官有想了解更多内容,请慢慢阅读此文。

操纵excel主动化的体式格局不少 明天咱们看看怎样用电脑自带的PowerShell来干这件事

储蓄常识:工作簿 工作表 ,要知道这俩是啥玩意

注:#开首的是正文信息 操纵的时分能够没有写

一 创立一个带有门生成就的excel文件

筹办工作:翻开电脑上的PowerShell软件 所有指令都必要正在此软件中运转

1 既然是操纵excel 起首必要一个excel的变量

$excel = New-Object -ComObject Excel.Application #没有显示excel对话框 不这行的话 正在保留的时分可能会弹出对话框$excel.DisplayAlerts =$false 

2 此时的excel只是个空壳子 接下来咱们必要创立一个工作簿

$workbook = $excel.Workbooks.Add()

3 此时曾经有一个工作簿 接下来咱们必要猎取工作簿中的第一个工作表

$sheet1 = $workbook.Sheets.Item(1)

4 此时工作表只是空表格 咱们写入正在第一行写入表头(姓名 数学 语文 外语 总分)

Cells[1,1]:第一行第一列

$sheet一.Cells[1,1].Value2 = "姓名"$sheet一.Cells[1,2].Value2 = "数学"$sheet一.Cells[1,3].Value2 = "语文"$sheet一.Cells[1,4].Value2 = "外语"$sheet一.Cells[1,5].Value2 = "总分"

5 有了表头 接下来必要添补一些数据做演示

从第二行入手下手 一向到第十行

for($i = 2;$i -le 10;$i++){    #写入姓名列    $sheet一.Cells[$i,1].Value2 = ("张三"+$i).ToString()      #写入数学列    $sheet一.Cells[$i,2].Value2 = (80+$i).ToString()    #写入语文列    $sheet一.Cells[$i,3].Value2 = (81+$i).ToString()    #写入外语列    $sheet一.Cells[$i,4].Value2 = (82+$i).ToString()}

6 如今咱们曾经有了 2-10行 九条成就数据 保留工作簿并退出

#保留工作簿到D盘下$workbook.SaveAs("D:\成就.xlsx") #退出excel$excel.Quit() #清空excel变量$excel =  $null #清算excel 不这一步义务治理器可能还会有excel进程残留[GC]::Collect() 

7 如今咱们曾经有了一个 成就.xlsx 的文件 内容如下

用电脑自带的PowerShell操作excel

二 接下来汇总总分

1 跟下面第一步同样 咱们必要一个操纵excel的变量

$excel = New-Object -ComObject Excel.Application #没有显示excel对话框 $excel.DisplayAlerts =$false 

2 读取下面创立的excel文件

$workbook = $excel.Workbooks.Open("D:\成就.xlsx")

3 读取文件后 咱们必要拿到适才的工作表也就是第一个工作表

$sheet1 = $workbook.Sheets.Item(1)

4 拿到了工作表 接下里就是读取2-10行的各科成就汇总总分

for($i = 2;$i -le 10;$i++){     #数学分数     $cell2 =  $sheet一.Cells[$i,2].Value2      #语文分数     $cell3 =  $sheet一.Cells[$i,3].Value2     #外语分数     $cell4 =  $sheet一.Cells[$i,4].Value2         #总分正在第五列 等于语数外三列的和      $sheet一.Cells[$i,5].Value2 =($cell2+$cell3+$cell4).ToString()}

5 分数汇总后保留并退出

#由于是翻开的现有工作簿 只需保留就行 没有用再指命名字$workbook.Save() $excel.Quit()$excel =  $null[GC]::Collect()

6 如今总分曾经汇总完成 如下


用电脑自带的PowerShell操作excel

三 上述PowerShell指令汇总

# 一 创立excel#创立$excel变量$excel = New-Object -ComObject Excel.Application  #没有弹出对话框$excel.DisplayAlerts =$false #新建工作簿$workbook = $excel.Workbooks.Add() #猎取第一个表$sheet1 = $workbook.Sheets.Item(1) #表头:姓名 第一行第一列 $sheet一.Cells[1,1].Value2 = "姓名" #表头:数学 第一行第二列 $sheet一.Cells[1,2].Value2 = "数学" #表头:语文 第一行第三列 $sheet一.Cells[1,3].Value2 = "语文"  #表头:外语 第一行第四列 $sheet一.Cells[1,4].Value2 = "外语"#表头:总分 第一行第五列 $sheet一.Cells[1,5].Value2 = "总分" #第二行到第十行 必要添补一些数据做演示  for($i = 2;$i -le 10;$i++){    #写入姓名列    $sheet一.Cells[$i,1].Value2 = ("张三"+$i).ToString()       #写入数学列    $sheet一.Cells[$i,2].Value2 = (80+$i).ToString()          #写入语文列    $sheet一.Cells[$i,3].Value2 = (81+$i).ToString()        #写入外语列    $sheet一.Cells[$i,4].Value2 = (82+$i).ToString()      }#保留到D:\成就.xlsx$workbook.SaveAs("D:\成就.xlsx")#退出$excel.Quit()$excel =  $null[GC]::Collect()# 二 读取下面创立的excel#创立$excel变量$excel = New-Object -ComObject Excel.Application #没有弹出对话框$excel.DisplayAlerts =$false #翻开工作簿$workbook = $excel.Workbooks.Open("D:\成就.xlsx") #猎取第一个表$sheet1 = $workbook.Sheets.Item(1) #汇总2-10行的总分for($i = 2;$i -le 10;$i++){  #数学分数  $cell2 =  $sheet一.Cells[$i,2].Value2    #语文分数  $cell3 =  $sheet一.Cells[$i,3].Value2   #外语分数  $cell4 =  $sheet一.Cells[$i,4].Value2    #总分正在第五列 等于语数外三列的和  $sheet一.Cells[$i,5].Value2 =($cell2+$cell3+$cell4).ToString()}#保留$workbook.Save()#退出$excel.Quit()$excel =  $null[GC]::Collect()

这就是小编整理的用电脑自带的PowerShell操纵excel全部内容,如果客官喜欢,请点赞收藏。您的支持就是小编最大的动力!如果客官想了解更多用电脑自带的PowerShell操纵excel相关内容,请关注小编。小编将持续提供更多优质内容!

台灯北京有限公司| 福建简彩工业有限公司| 江苏市拂晓苗木有限公司| 广州中际展览策划有限公司| 流程泵有限公司| 广东艾尚家具公司| http://www.sitchicago.com http://www.sabf-hk.com http://www.sc896.cn