iT邦幫忙

0

如何用Powershell取的excel檔內的值或表

請教邦友
目前計畫使用powershell指令寄發mail
但想在mail的body中黏貼上某excel檔內的特定sheet

請教是否有命令可以直接對此sheet作複製貼上至mail body的方法,包含格式、框線

目前想的比較笨的方法是對單儲存格一格一格取值放回powershell宣告的變數中
再將變數丟至mail body,但相當費工

另外在對岸的論壇上找到一些對excel物件控制的方法: 在取值前 這樣子寫是否正確?
如果此檔本身已經開啟在桌面的狀態下,那下面這些命令是否是多餘的

$objExcel = New-Object -ComObject Excel.Application   
    #使用 COM 來建置 Excel.Application 的物件
$FilePath = "D:\Test.xlsx"
$WorkBook = $objExcel.Workbooks.Open( $FilePath ) 
    #使用 Open() 來開啟 Excel 檔案
$WorkSheet = $WorkBook.sheets.item( "s1" ) 
    #存取特定的 Sheet 
$WorkSheet.activate()

$a = $worksheet.Rows.Item(2).Columns.Item(3).text
$WorkBook.Close()
$objExcel.Quit()  #关闭Excel应用
$objExcel = $null # 释放进程
[GC]::Collect()   # 释放进程
WilliamHuang
iT邦研究生 1 級 ‧ 2017-04-27 11:21:07
【**此則訊息已被站方移除**】
0
runan5678
iT邦新手 2 級 ‧ 2017-04-27 15:54:33

取值得部分看起來是沒問題 詳細請再測試
我碰到的問題是無法正常的結束Excel 造成下次開啟時會有問題
所以用強制結束的方式處理

0
海綿寶寶
iT邦超人 1 級 ‧ 2017-04-28 07:51:10
  1. 將 EXCEL SHEET 另存成 PDF
  2. 用 PowerShell 寄出 email (PDF 當成附件)

附檔不是重點喔~夾xls也是可以的
重點是mail的body上一定要有那個sheet的資料格在上面

還是謝謝提供想法

嗯, Good luck.

我要發表回答

立即登入回答