<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://powershell.com/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results for 'app:weblogs' matching tag 'Excel'</title><link>http://powershell.com/cs/search/SearchResults.aspx?q=app:weblogs&amp;tag=Excel&amp;orTags=0&amp;o=DateDescending</link><description>Search results for 'app:weblogs' matching tag 'Excel'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Building Excel Reports with PowerShell</title><link>http://powershell.com/cs/blogs/lonelyadministrator/archive/2013/01/30/building-excel-reports-with-powershell.aspx</link><pubDate>Wed, 30 Jan 2013 06:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:21342</guid><dc:creator>Anonymous</dc:creator><description>Last year I wrote a series of articles for the Petri IT KnowledgeBase on using Microsoft Excel with PowerShell. Today I received an email from a reader who had a question about article that showed how to build a drive usage report in Excel. In the article I suggest it wouldn&amp;#8217;t be too difficult to [...]</description></item><item><title>Quick and Dirty Excel from PowerShell</title><link>http://powershell.com/cs/blogs/lonelyadministrator/archive/2012/05/10/quick-and-dirty-excel-from-powershell.aspx</link><pubDate>Thu, 10 May 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:16471</guid><dc:creator>Anonymous</dc:creator><description>
I continue to tinker with Office applications and Windows PowerShell. I was looking at an Excel issue related to opening a new workbook. To verify the problem wasn&amp;#8217;t PowerShell related I offered a suggestion to try creating an Excel workbook &amp;#8230; &lt;a href="http://jdhitsolutions.com/blog/2012/05/quick-and-dirty-excel-from-powershell/"&gt;Continue reading &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description></item><item><title>Displaying Data in Excel (and why it won't work)</title><link>http://powershell.com/cs/blogs/tobias/archive/2012/04/24/displaying-data-in-excel-and-why-it-won-t-work.aspx</link><pubDate>Tue, 24 Apr 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:16128</guid><dc:creator>Tobias</dc:creator><description>&lt;p&gt;It&amp;#39;s pretty easy to &lt;strong&gt;send&lt;/strong&gt; PowerShell &lt;strong&gt;results to Excel&lt;/strong&gt; and display them nicely as a spreadsheet. Actually, here&amp;#39;s a simple function called &lt;strong&gt;Out-ExcelReport&lt;/strong&gt;. Pipe anything to it, and it shows up as an excel sheet (provided you have indeed installed excel beforehand):&lt;/p&gt;
&lt;div class="pscode"&gt;&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Out-ExcelReport&lt;/span&gt;&lt;/span&gt; {&lt;br /&gt;&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;param&lt;/span&gt;&lt;/span&gt;(&lt;br /&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$path&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="string"&gt;&lt;span style="color:#800000;"&gt;&amp;quot;$env:temp\report$(Get-Date -format yyyyMMddHHmmss).csv&amp;quot;&lt;/span&gt;&lt;/span&gt;,&lt;br /&gt;[&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;switch&lt;/span&gt;&lt;/span&gt;]&lt;span style="color:#800080;"&gt;&lt;span class="var"&gt;$open&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;)&lt;br /&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$Input&lt;/span&gt;&lt;/span&gt; | &lt;br /&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Export-Csv&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$path&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-NoTypeInformation&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-UseCulture&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-Encoding&lt;/span&gt;&lt;/span&gt; UTF8&lt;br /&gt;&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;&lt;/span&gt;(&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$open&lt;/span&gt;&lt;/span&gt;) { &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Invoke-Item&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$path&lt;/span&gt;&lt;/span&gt; }&lt;br /&gt;}&lt;/div&gt;
&lt;p&gt;Now creating spreadsheets&amp;nbsp;is as easy as this:&lt;/p&gt;
&lt;div class="pscode"&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Get-Process&lt;/span&gt;&lt;/span&gt; | &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Out-ExcelReport&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-open&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;Why Does Excel Display Garbage?&lt;/h3&gt;
&lt;p&gt;Displaying results in Excel isn&amp;#39;t so much a problem once you figure out how to export to CSV and then import that to excel. &lt;/p&gt;
&lt;p&gt;The problem becomes evident a bit later, when you &lt;strong&gt;start to have fun&lt;/strong&gt; and then suddenly &lt;strong&gt;run into lines&lt;/strong&gt; such as this one:&lt;/p&gt;
&lt;div class="pscode"&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Get-WMIObject&lt;/span&gt;&lt;/span&gt; Win32_NetworkAdapterConfiguration &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;-&lt;/span&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;filter&lt;/span&gt;&lt;/span&gt; &lt;span class="string"&gt;&lt;span style="color:#800000;"&gt;&amp;#39;IPEnabled=True&amp;#39;&lt;/span&gt;&lt;/span&gt; | &lt;br /&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Select-Object&lt;/span&gt;&lt;/span&gt; Caption, DefaultIPGateway, MACAddress, IPAddress | &lt;br /&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Out-ExcelReport&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-open&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;This line will indeed&amp;nbsp;find your active network adapters, and it will open excel and display the network properties your code selected. But... the result probably looks similar to this:&lt;/p&gt;
&lt;div class="pscode"&gt;Caption DefaultIPGateway MACAddress IPAddress&lt;br /&gt;[00000007] Bro... System.&lt;span class="datatype"&gt;&lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;&lt;/span&gt;[] 68:A8:6D:0B:5F:CC System.&lt;span class="datatype"&gt;&lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;&lt;/span&gt;[]&lt;/div&gt;
&lt;p&gt;Note how some properties display correctly (such as &lt;strong&gt;MACAddress&lt;/strong&gt;), while others read &amp;quot;&lt;strong&gt;System.String[]&lt;/strong&gt;&amp;quot;. Where did the IP address go?&lt;/p&gt;
&lt;h3&gt;Shape Up Your Results!&lt;/h3&gt;
&lt;p&gt;The problem occurs whenever the property is &lt;strong&gt;NOT just text&lt;/strong&gt;. Since excel can only deal with text, anything that is not text in the first place &lt;strong&gt;needs to be converted to text&lt;/strong&gt;. &lt;strong&gt;&amp;quot;System.String[]&amp;quot; &lt;/strong&gt;simply is the result of such a conversion. The property you tried to display was an array of strings. That&amp;#39;s correct BTW. A network adapter can have multiple IP addresses, so the property &lt;strong&gt;IPAddress&lt;/strong&gt; is by design an array.&lt;/p&gt;
&lt;p&gt;To &lt;strong&gt;create meaningful reports&lt;/strong&gt;, you need to convert such properties to text in a &lt;strong&gt;more clever way&lt;/strong&gt;. Here are two things you can do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Join Arrays:&lt;/strong&gt; use the &lt;strong&gt;-join operator&lt;/strong&gt; to join array elements and produce descriptive text&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Out-String:&lt;/strong&gt; send the property to &lt;strong&gt;Out-String&lt;/strong&gt; and take advantage of PowerShell&amp;#39;s own &lt;strong&gt;built-in conversion support&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So how exactly would you implement these conversion methods? Well, here&amp;#39;s a way:&lt;/p&gt;
&lt;div class="pscode"&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$results&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Get-WMIObject&lt;/span&gt;&lt;/span&gt; Win32_NetworkAdapterConfiguration &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;-&lt;/span&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;filter&lt;/span&gt;&lt;/span&gt; &lt;span class="string"&gt;&lt;span style="color:#800000;"&gt;&amp;#39;IPEnabled=True&amp;#39;&lt;/span&gt;&lt;/span&gt; | &lt;br /&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Select-Object&lt;/span&gt;&lt;/span&gt; Caption, DefaultIPGateway, MACAddress, IPAddress &lt;br /&gt;&lt;br /&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$results&lt;/span&gt;&lt;/span&gt;.&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;DefaultIPGateway&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$results&lt;/span&gt;&lt;/span&gt;.&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;DefaultIPGateway&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-join&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800000;"&gt;&lt;span class="string"&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$results&lt;/span&gt;&lt;/span&gt;.&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;IPAddress&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$results&lt;/span&gt;&lt;/span&gt;.&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;IPAddress&lt;/span&gt;&lt;/span&gt; | &lt;span style="color:#5f9ea0;"&gt;&lt;span class="verbnoun"&gt;Out-String&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$results&lt;/span&gt;&lt;/span&gt; | &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Out-ExcelReport&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-open&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Note how I just took the result produced by &lt;strong&gt;Select-Object&lt;/strong&gt; and saved that in $results. That&amp;#39;s all. Since &lt;strong&gt;Select-Object&lt;/strong&gt; always creates new objects with only the properties I want, and since objects produced by &lt;strong&gt;Select-Object&lt;/strong&gt; are always &lt;strong&gt;read/write&lt;/strong&gt;, I now can use whatever method I prefer to beautify those properties. Then, when all is fine, I can continue and send $results on to &lt;strong&gt;Out-ExcelReport&lt;/strong&gt;. The result is a report with all the multivalues displaying fine. &lt;/p&gt;
&lt;p&gt;Phew! Done - and you now can convert your PowerShell results to excel reports - and fine-tune any property that isn&amp;#39;t showing up the way you want it to. Stay tuned...!&lt;/p&gt;
&lt;p&gt;Tobias&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Microsoft MVP PowerShell Germany&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;P.S.&lt;br /&gt;If you live in Germany or other parts of Europe and your company would like to set up a truly great PowerShell training, just contact me! I regularly train mid- to large-size companies. Trainings are always a blast with tons of real-world-examples and solutions. Here&amp;#39;s how to get in touch with me: &lt;a href="mailto:tobias.weltner@scriptinternals.de"&gt;&lt;span style="color:#3366cc;"&gt;tobias.weltner@scriptinternals.de&lt;/span&gt;&lt;/a&gt; &lt;/p&gt;</description></item><item><title>Automating Office and Excel in PowerShell </title><link>http://powershell.com/cs/blogs/tobias/archive/2010/08/19/automating-office-and-excel-in-powershell.aspx</link><pubDate>Thu, 19 Aug 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:7445</guid><dc:creator>Tobias</dc:creator><description>&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Let&amp;#39;s assume you&amp;#39;d like to &lt;strong&gt;write results directly to an Excel sheet&lt;/strong&gt;, or you&amp;#39;d like to dynamically update Excel cells, or read Excel content into your script. In older scripting languages like VBScript, this was easy. Office has COM libraries which allow direct access to all Office products. The same libraries are accessible from PowerShell as well. Here is some sample code that opens Excel, adds a workbook and writes and reads directly to Excel cells:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;
&lt;div class="pscode"&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$excel&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;New-Object&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-ComObject&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#8b4513;"&gt;&lt;span class="namespace"&gt;Excel.Application&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$excel&lt;/span&gt;&lt;/span&gt;.&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;Visible&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;span class="var"&gt;$true&lt;/span&gt;&lt;br /&gt;&lt;span class="var"&gt;$workbook1&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$excel&lt;/span&gt;&lt;/span&gt;.&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;Workbooks.Add&lt;/span&gt;&lt;/span&gt;()&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;&lt;span class="comment"&gt;# write into cell B5 (column 2, line 5):&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$workbook1&lt;/span&gt;&lt;/span&gt;.&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;ActiveSheet.Cells.Item&lt;/span&gt;&lt;/span&gt;(5,2)&lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800000;"&gt;&lt;span class="string"&gt;&amp;quot;I can write directly to cells!&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;&lt;span class="comment"&gt;# read cell content&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$content&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$workbook1&lt;/span&gt;&lt;/span&gt;.&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;ActiveSheet.Cells.Item&lt;/span&gt;&lt;/span&gt;(5,2).&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;Text&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="string"&gt;&lt;span style="color:#800000;"&gt;&amp;quot;Cell B5 content: $content&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;Accessing Office from PowerShell - not that easy!&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;If that code works for you, happy you! Chances are in the middle of your script, &lt;strong&gt;you get an awkward exception&lt;/strong&gt;, complaining about old formats or invalid type libraries. There has been a lot of confusion just why this error occurs and when. It seems to &lt;strong&gt;randomly occur on some machines&lt;/strong&gt; while others run the code just fine. &lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;
&lt;p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Now, the true reason for this is not PowerShell but rather .NET. If your operating system and your MS Office use different languages, you get the exception. Worse yet, if you use MUIs, you may not even notice that there is a language conflict between your OS and your office.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 class="MsoNormal" style="MARGIN:0cm 0cm 10pt;"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;Working around the Language Problem&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;Fortunately, after some research, we today found a pretty slick workaround. If you have a language conflict, then simply &lt;strong&gt;tell PowerShell to execute your code in a different language&lt;/strong&gt; - and all is fine!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;To execute PowerShell in a different language, you need to temporarily change the thread culture. Inspired by an &lt;a target="_blank" href="http://blogs.msdn.com/b/monad/archive/2005/11/30/498432.aspx"&gt;old article Jeffrey Snover posted for Monad&lt;/a&gt;, I created an uptodate PowerShell V2 function called &lt;strong&gt;Use-Culture&lt;/strong&gt;. It accepts a culture ID and a script block and then executes the code using the specified culture. Here &lt;a target="_blank" href="http://powershell.com/cs/media/p/7446.aspx"&gt;is the function&lt;/a&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;lt;&lt;span style="color:#008000;"&gt;&lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;.&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;SYNOPSIS&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Executes PowerShell Code using specified culture&lt;br /&gt;.&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;DESCRIPTION&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Temporarily switches culture from your default culture to another culture.&lt;br /&gt;.&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;PARAMETER&lt;/span&gt;&lt;/span&gt; culture&lt;br /&gt;Culture id for the culture you want to use, &lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;i.e&lt;/span&gt;&lt;/span&gt;. &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;en-US&lt;/span&gt;&lt;/span&gt; for English culture, or &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;de-DE&lt;/span&gt;&lt;/span&gt; for German culture&lt;br /&gt;.&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;PARAMETER&lt;/span&gt;&lt;/span&gt; code&lt;br /&gt;PowerShell code you want to run using the specified culture&lt;br /&gt;.&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;EXAMPLE&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Use-Culture&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;en-US&lt;/span&gt;&lt;/span&gt; {&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Get-Date&lt;/span&gt;&lt;/span&gt;}&lt;br /&gt;outputs the current date &lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;in&lt;/span&gt;&lt;/span&gt; US format&lt;br /&gt;.&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;EXAMPLE&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Use-Culture&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;de-DE&lt;/span&gt;&lt;/span&gt; {&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Get-Date&lt;/span&gt;&lt;/span&gt;}&lt;br /&gt;outputs the current date &lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;in&lt;/span&gt;&lt;/span&gt; German format&lt;br /&gt;.&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;EXAMPLE&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Use-Culture&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;ar-IQ&lt;/span&gt;&lt;/span&gt; {&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Get-Date&lt;/span&gt;&lt;/span&gt;}&lt;br /&gt;outputs the current date &lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;in&lt;/span&gt;&lt;/span&gt; Iraq format&lt;br /&gt;.&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;NOTES&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Use this command to get a list of all supported culture IDs:&lt;br /&gt;[&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;system.Globalization.CultureInfo&lt;/span&gt;&lt;/span&gt;]::&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;GetCultures&lt;/span&gt;&lt;/span&gt;(&lt;span class="string"&gt;&lt;span style="color:#800000;"&gt;&amp;#39;AllCultures&amp;#39;&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;.&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;LINK&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;http:&lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;&lt;span class="namespace"&gt;www.powershell.com&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;&lt;span class="comment"&gt;#&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Use-Culture&lt;/span&gt;&lt;/span&gt; {&lt;br /&gt;&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;param&lt;/span&gt;&lt;/span&gt;(&lt;br /&gt;[&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;System.Globalization.CultureInfo&lt;/span&gt;&lt;/span&gt;]&lt;br /&gt;[Parameter(Mandatory&lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$true&lt;/span&gt;&lt;/span&gt;)]&lt;br /&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$culture&lt;/span&gt;&lt;/span&gt;,&lt;br /&gt;[&lt;span class="optional"&gt;&lt;span style="color:#0000ff;"&gt;ScriptBlock&lt;/span&gt;&lt;/span&gt;]&lt;br /&gt;[Parameter(Mandatory&lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$true&lt;/span&gt;&lt;/span&gt;)]&lt;br /&gt;&lt;span style="color:#800080;"&gt;&lt;span class="var"&gt;$code&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;&lt;span style="color:#0000ff;"&gt;trap&lt;/span&gt;&lt;/span&gt; {&lt;br /&gt;[&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;System.Threading.Thread&lt;/span&gt;&lt;/span&gt;]::&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;CurrentThread.CurrentCulture&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;span class="var"&gt;$currentCulture&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$currentCulture&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; [&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;System.Threading.Thread&lt;/span&gt;&lt;/span&gt;]::&lt;span style="color:#8b4513;"&gt;&lt;span class="namespace"&gt;CurrentThread.CurrentCulture&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;[&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;System.Threading.Thread&lt;/span&gt;&lt;/span&gt;]::&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;CurrentThread.CurrentCulture&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;span class="var"&gt;$culture&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Invoke-Command&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;span class="var"&gt;$code&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;[&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;System.Threading.Thread&lt;/span&gt;&lt;/span&gt;]::&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;CurrentThread.CurrentCulture&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;span class="var"&gt;$currentCulture&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;}&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;To see some simple examples, take advantage of the comment based help (after you ran the function code):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Get-Help&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Use-Culture&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-Examples&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;mso-ansi-language:EN-US;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;And to get a complete list of all culture IDs you can play with, use this command:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;mso-ansi-language:EN-US;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;mso-ansi-language:EN-US;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;
&lt;p class="pscode"&gt;[&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;system.Globalization.CultureInfo&lt;/span&gt;&lt;/span&gt;]::&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;GetCultures&lt;/span&gt;&lt;/span&gt;(&lt;span class="string"&gt;&lt;span style="color:#800000;"&gt;&amp;#39;AllCultures&amp;#39;&lt;/span&gt;&lt;/span&gt;)&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="pscode"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;Accessing Excel from PowerShell&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;mso-ansi-language:EN-US;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="font-family:Calibri;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;Now back to Excel. If you get the exception and want to run your code, place your code inside braces and store it in some variable. Then, run &lt;strong&gt;Use-Culture&lt;/strong&gt; with the en-US culture and specify your code like this:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$code&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; {&lt;br /&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$excel&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;New-Object&lt;/span&gt;&lt;/span&gt; &lt;span class="modifier"&gt;&lt;span style="color:#5f9ea0;"&gt;-ComObject&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#8b4513;"&gt;&lt;span class="namespace"&gt;Excel.Application&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$excel&lt;/span&gt;&lt;/span&gt;.&lt;span class="method"&gt;&lt;span style="color:#8b4513;"&gt;Visible&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;span class="var"&gt;$true&lt;/span&gt;&lt;br /&gt;&lt;span class="var"&gt;$workbook1&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$excel&lt;/span&gt;&lt;/span&gt;.&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;Workbooks.Add&lt;/span&gt;&lt;/span&gt;()&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;&lt;span class="comment"&gt;# write into cell B5 (column 2, line 5):&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$workbook1&lt;/span&gt;&lt;/span&gt;.&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;ActiveSheet.Cells.Item&lt;/span&gt;&lt;/span&gt;(5,2)&lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#800000;"&gt;&lt;span class="string"&gt;&amp;quot;I can write directly to cells!&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;&lt;span class="comment"&gt;# read cell content&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$content&lt;/span&gt;&lt;/span&gt; &lt;span class="op"&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$workbook1&lt;/span&gt;&lt;/span&gt;.&lt;span class="namespace"&gt;&lt;span style="color:#8b4513;"&gt;ActiveSheet.Cells.Item&lt;/span&gt;&lt;/span&gt;(5,2).&lt;span style="color:#8b4513;"&gt;&lt;span class="method"&gt;Text&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;&lt;span class="string"&gt;&amp;quot;Cell B5 content: $content&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;Use-Culture&lt;/span&gt;&lt;/span&gt; &lt;span class="verbnoun"&gt;&lt;span style="color:#5f9ea0;"&gt;en-US&lt;/span&gt;&lt;/span&gt; &lt;span class="var"&gt;&lt;span style="color:#800080;"&gt;$code&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;font face="&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;" style="font-size:11pt;mso-ansi-language:EN-US;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;font face="Calibri"&gt;
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;It works! Finally. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;Likewise, if you normally do not get the weird Excel exception, simply specify a conflicting culture such as &lt;strong&gt;ar-IQ&lt;/strong&gt; and watch the exception pop up.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Enjoy and have fun!&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Tobias&lt;br /&gt;&lt;em&gt;Microsoft MVP PowerShell&lt;/em&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;" style="font-size:11pt;mso-ansi-language:EN-US;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;
&lt;p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;</description></item><item><title>New-ExcelWorkbook.ps1</title><link>http://powershell.com/cs/blogs/powershell-scripts/archive/2010/03/18/new-excelworkbook-ps1.aspx</link><pubDate>Thu, 18 Mar 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:5059</guid><dc:creator>Anonymous</dc:creator><description>  &lt;div style="width:99%;height:924px;" id="hlDiv" class="dp-highlighter"&gt;   &lt;div class="bar"&gt;&lt;/div&gt;    &lt;ol class="dp-rb"&gt;     &lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span class="comment"&gt;#&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;.SYNOPSIS&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; This script creates an Excel workbook using PowerShell&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;.DESCRIPTION&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; This script demonstrates manipulating Excell with PowerShell&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; and the Excel.Application COM object.&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;.NOTES&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; File Name&amp;#160; : New-ExcelWorkbook.ps1&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; Author&amp;#160;&amp;#160;&amp;#160;&amp;#160; : Thomas Lee - tfl&lt;span class="variable"&gt;@psp&lt;/span&gt;&lt;span&gt;.co.uk&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; Requires&amp;#160;&amp;#160; : PowerShell Version 2.0&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;.LINK&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; This script posted to:&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://pshscripts.blogspot.com/2010/03/new-excelworkbookps1.html" href="http://pshscripts.blogspot.com/2010/03/new-excelworkbookps1.html"&gt;http://pshscripts.blogspot.com/2010/03/new-excelworkbookps1.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; MSDN Sample posted at:&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://msdn.microsoft.com/en-us/library/bb211359.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb211359.aspx&lt;/a&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;.EXAMPLE&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; Run it and see one!&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="comment"&gt;## &lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Start of Script&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="comment"&gt;##&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Then we create and save a sample worksheet&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Create Excel object&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt; = new-object -comobject Excel.Application&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Make Excel visible&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;.visible = &lt;/span&gt;&lt;span class="variable"&gt;$true&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Create a new workbook&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$workbook&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;.workbooks.add()&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# The default workbook has three sheets, remove 2&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$S2&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$workbook&lt;/span&gt;&lt;span&gt;.sheets | &lt;/span&gt;&lt;span class="keyword"&gt;where&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.name -eq &lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Sheet2&amp;quot;&lt;/span&gt;&lt;span&gt;}&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s3&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$workbook&lt;/span&gt;&lt;span&gt;.sheets | &lt;/span&gt;&lt;span class="keyword"&gt;where&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.name -eq &lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Sheet3&amp;quot;&lt;/span&gt;&lt;span&gt;}&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s2&lt;/span&gt;&lt;span&gt;.delete()&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s3&lt;/span&gt;&lt;span&gt;.delete()&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Get sheet and update sheet name&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$workbook&lt;/span&gt;&lt;span&gt;.sheets | &lt;/span&gt;&lt;span class="keyword"&gt;where&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.name -eq &lt;/span&gt;&lt;span class="string"&gt;&amp;#39;Sheet1&amp;#39;&lt;/span&gt;&lt;span&gt;}&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.name = &lt;/span&gt;&lt;span class="string"&gt;&amp;quot;PowerShell Sample&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Update workook properties&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$workbook&lt;/span&gt;&lt;span&gt;.author = &lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Thomas Lee - tfl@psp.co.uk&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$workbook&lt;/span&gt;&lt;span&gt;.title = &lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Excel and PowerShell rock!&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$workbook&lt;/span&gt;&lt;span&gt;.subject = &lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Demonstrating the Power of PowerShell with Excel&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="comment"&gt;# Next update some cells in the worksheet &amp;#39;PowerShell Sample&amp;#39;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;A1:A1&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Cell a1&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;A2:A2&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;A2&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;b1:b1&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Cell B1&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;b2:b2&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;b2&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="comment"&gt;# now make a sum&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;E1:E2&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Widgets&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;E2:E2&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=2&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;E3:E3&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=2&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;E4:E4&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=38&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;D5:D5&amp;quot;&lt;/span&gt;&lt;span&gt;).cells=&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Total&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.range(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;E5:E5&amp;quot;&lt;/span&gt;&lt;span&gt;).cells.formula = &lt;/span&gt;&lt;span class="string"&gt;&amp;quot;=sum(e2,E4)&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="comment"&gt;# And save it away:&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$s1&lt;/span&gt;&lt;span&gt;.saveas(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;c:\foo\xlsx3.xlsx&amp;quot;&lt;/span&gt;&lt;span&gt;)&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li class="class"&gt;&lt;span&gt;&lt;span class="comment"&gt;# end of script&lt;/span&gt;&lt;span&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;   &lt;/ol&gt; &lt;/div&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:376ec313-e4ea-41b0-9996-3eb8f5963ec1" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Excel" rel="tag"&gt;Excel&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PowerShell" rel="tag"&gt;PowerShell&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Scripts" rel="tag"&gt;Scripts&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Excel.Application" rel="tag"&gt;Excel.Application&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/546036873798832453-6624266447152498036?l=pshscripts.blogspot.com" alt="" /&gt;&lt;/div&gt;</description></item></channel></rss>