Quantcast
Channel: Windows PowerShell forum
Viewing all articles
Browse latest Browse all 21975

Help writing a excel function to a cell using powershell

$
0
0

I have been working on a function that will write worklog information to an excel template. I am able to get it to work but once i added the date column and tried to write a excel function to it I'm getting the below error.

Exception setting "Item": "Exception from HRESULT: 0x800A03EC"At
C:\Users\shuppz\Documents\WindowsPowerShell\Modules\Client Config CDRL\Source\Get-Assignment.ps1:1482 char:4+             $Main.Cells.Item($i, 9) = $DateFunction+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo          : NotSpecified: (:) [], SetValueInvocationException+ FullyQualifiedErrorId : CatchFromBaseAdapterParameterizedPropertySetValueTI

the excel string i need to add to the cell is to add a date and the string i created is in the below function called $DateFunction.

Function Create-Worklog
{
	Param ($NewFile, $DBName, $Work)
	$before = @(Get-Process [e]xcel | %{ $_.Id })
	$ExcelObject = new-Object -comobject Excel.Application
	$ExcelId = Get-Process excel | %{ $_.Id } | ? { $before -notcontains $_ }
	$ExcelObject.visible = $False
	$ExcelObject.DisplayAlerts = $False
	$ActiveWorkbook = $ExcelObject.WorkBooks.Open($NewFile)
	$Main = $ActiveWorkbook.Worksheets.Item('Worklog')
	$Main.Cells.Item(2, 6) = $(Get-Date -f MM/dd/yyyy)
	$Main.Cells.Item(3, 6) = $($DBName.Replace(".accdb",""))
	$i = 6
	ForEach ($W in $Work)
	{
		$DateFunction = "=IF (G$i = " + [char](34) +"Mitigated" + [char](34) + ", TODAY(), IF (G$i = " + [char](34) +"Escalated" + [char](34) + ", TODAY(), IF (G$i = " + [char](34) +"Offline"", TODAY(), " + [char](34) +")))"
		$Main.Cells.Item($i, 1) = $W.Workstation
		$Main.Cells.Item($i, 2) = $W.VulnCount
		$Main.Cells.Item($i, 3) = $W.OS
		$Main.Cells.Item($i, 4) = $W.AuditID
		$Main.Cells.Item($i, 5) = $W.Name
		$Main.Cells.Item($i, 6) = $W.Fix
		$Main.Cells.Item($i, 7) = "Open"
		$Main.Cells.Item($i, 9) = $DateFunction
		$TBString = "{0},{1}" -f $W.Workstation, $W.AuditID
		$Main.Cells.Item($i, 12) = $TBString
		$i++
	}
	$ActiveWorkbook.SaveAs($NewFile)
	$ExcelObject.Quit() | Out-Null
	[System.Runtime.Interopservices.Marshal]::ReleaseComObject($ExcelObject)
	Stop-Process -Id $ExcelId -Force -ErrorAction SilentlyContinue
}
If someone can help me figure out how to add this custom excel function. When I run the function everything gets filled out but the date function.




Viewing all articles
Browse latest Browse all 21975

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>