Excel中的Excel函数(Excel functions in powershell)

我是Powershell的新手,我需要将文本文件解析为excel并编辑内容。

我设法使用以下脚本打开文件:

$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$Excel.DisplayAlerts = $false
$Excel.Workbooks.OpenText( "Documents\myfile.txt")

它运行无一例外,但我留下的数据告诉我文件没有正确加载。

我需要设置像FieldInfo这样的参数来导出。

我该怎么做呢?

感谢帮助。


I am new to Powershell and I need to parse text file into excel and edit content.

I managed to open file with the following script:

$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$Excel.DisplayAlerts = $false
$Excel.Workbooks.OpenText( "Documents\myfile.txt")

It runs without exception, but the data I'm left with tells me the file is not loaded properly.

I need to set parameters like FieldInfo for export.

How do I do this?

Thanks for help.


原文:https://stackoverflow.com/questions/41019626
2021-07-03 20:07

满意答案

当您通过文本文件或手动输入将数据导入Excel时,Excel将尝试解释它是什么类型的数据,文本,日期或数字。 您将引入一个看起来像数字的文本到Excel。

一个解决方案是让Powershell完成所有工作,让它加载文件然后遍历每一行。 然后,您可以在加载数据之前强制格式化。

像这样的东西:

$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$wb = $Excel.Workbooks.add()
$ws = $wb.Worksheets[1]

Import-Csv "Documents\myfile.txt" | % {$i = 1}{

  $ws.Range("A" + $i).NumberFormat = '@'
  $ws.Range("A" + $i).Value = $_.Field1

  #Repeat for each field

  $i++
)  

When you bring data into Excel via text file or manual input, Excel will try to interpret what type of data it is, text, date or number. You are bringing in text that looks like a number to Excel.

One solution is to make Powershell do all the work, get it to load the file and then loop through each row. You can then force the format before loading the data.

Something like this:

$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$wb = $Excel.Workbooks.add()
$ws = $wb.Worksheets[1]

Import-Csv "Documents\myfile.txt" | % {$i = 1}{

  $ws.Range("A" + $i).NumberFormat = '@'
  $ws.Range("A" + $i).Value = $_.Field1

  #Repeat for each field

  $i++
)  

相关问答

更多

在PowerShell中打开Excel时出错(Error opening excel in powershell)

在大量使用PowerShell脚本之后......这很奇怪。 观察到的行为 首先,运行$excel.Workbooks.Open.Invoke.ToString()时,Workbooks对象上的Open方法仅报告14个参数。 ouptut写道: Workbook Open (string, Variant, Variant, Variant, Variant, Variant, Variant, Variant, Variant, Variant, Variant, Variant, Varian...

使用Powershell关闭excel应用程序(Close excel application using Powershell)

在释放COM对象之前尝试使用Quit方法,如下所示: $excel.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) Remove-Variable excel Try using Quit method before you release COM object, like this: $excel.Quit() [System.Runtime.Interopservices.Marshal]::...

从PowerShell调用Excel VSTO Addin(Calling Excel VSTO Addin from PowerShell)

解决了这个问题。 在对象上执行Get-Member但不是Async方法时,Powershell中不显示异步方法。 我已经有一个异步函数,在VB.NET中有一个Await语句,所以我用一个函数包装了一个没有Async修饰符的函数,并调用它: 这在代码的主体中: - 公共异步函数ExecRefreshInNewThread()作为任务(布尔型) Dim msg As String Try Dim tasks As New List(Of Tasks.Task)() ...

“= + IF(...)”在Excel中做什么?(Does “=+IF(…)” do anything in Excel?)

就我对Excel的知识而言,它没有做任何事情。 它主要是莲花123时期的一个剩余物。它是非常无害的,并且不会以任何方式改变配方的操作,所以如果它有可能需要将其完全抛弃的话。 :) As far as my knowledge with Excel itt doesn't do anything resorceful. It is mainly a leftover from the days of Lotus 123. It is quite harmless, and doesn't chang...

使用Powershell的Excel表(Excel table using Powershell)

我在MSDN条目中搜索Excel自动化,但找不到按名称引用表的方法。 这是否意味着它不存在而我错过了它? 不,但这意味着它并不明显,很可能意味着它根本不存在。 接下来,这可以通过另一种方式完成吗? 可能是。 我在使用Excel和PowerShell执行一些数字伏都教方面并不差,所以我会说,虽然你不能按名称引用表,但如果你真的想要自动完成这项任务,你可以通过其他方式找到该表。 一旦你拿到了电子表格,就看看它,看看是否有你可以用桌子搜索的东西,然后尝试另一种方式,如果遇到障碍,我们会看看是否我们可以帮...

没有安装Excel的PowerShell Excel的访问(powershell excel access without installing Excel)

请参阅脚本专家的详细文章。 您必须在PowerShell脚本中使用经典的COM ADO。 嘿,脚本专家! 如何在不使用Excel的情况下从Excel中读取数据? 相关Powershell片段: $strFileName = "C:\Data\scriptingGuys\Servers.xls" $strSheetName = 'ServerList$' $strProvider = "Provider=Microsoft.Jet.OLEDB.4.0" $strDataSource = "Data ...

Excel中的Excel函数(Excel functions in powershell)

当您通过文本文件或手动输入将数据导入Excel时,Excel将尝试解释它是什么类型的数据,文本,日期或数字。 您将引入一个看起来像数字的文本到Excel。 一个解决方案是让Powershell完成所有工作,让它加载文件然后遍历每一行。 然后,您可以在加载数据之前强制格式化。 像这样的东西: $Excel = New-Object -ComObject Excel.Application $Excel.Visible = $true $wb = $Excel.Workbooks.add() $ws ...

Excel和PowerShell - 使用VLOOKUPs粘贴特殊故障(Excel & PowerShell - PasteSpecial Failure With VLOOKUPs)

我能够通过做一些直接引用来解决这个问题,并改变我分配范围的方式,然后调用PasteSpecial,如下所示: $pasteRange = $sheetTrans.Range(("F"+$i+":F"+$j)) $pasteRange.PasteSpecial($xlPasteValues) | Out-Null 使用这样的声明: Add-Type -ASSEMBLY "Microsoft.Office.Interop.Excel" | out-null $global:xlPasteFormul...

在Excel中嵌套IF AND OR函数(Nesting IF AND OR functions in excel)

尝试这个: =IF(OR(AND(B2="Year 1", OR(M2>=2, V2>=2)), AND(B2="Year 2", OR(M2>=2.5, V2>=2.5)), AND(B2="Year 3", OR(M2>=3, V2>=3))), "Yes", "No") Try this: =IF(OR(AND(B2="Year 1", OR(M2>=2, V2>=2)), AND(B2="Year 2", OR(M2>=2.5, ...

在Powershell中忽略隐藏的Excel工作表(Ignore Hidden Excel worksheets in Powershell)

if($ws.Visible -eq 0) { # Hidden } else { # Visible } if($ws.Visible -eq 0) { # Hidden } else { # Visible }

相关文章

更多

这种的EXCEL表格 怎么来解析??

如图的EXCEL表格 怎么来解析??

JXLS根据excel模板生成EXCEL并下载

JXLS根据excel模板生成EXCEL并下载,jxl.jar,jxls-core-0.9.9.jar ...

POI 操作 Excel的主要API

Java Aspose Cells 是一种纯粹的Java授权的Excel API

使用POI操作Excel和Word

前言:今天在项目中看到有小模块是上传Excel解释后保存到数据库的操作,好奇之下去了解了如何使用Apa ...

POI 操作Excel公式

在执行这个公式

java+jsp来获取excel的数据?

首先我会在jsp页面上给用户一个上传组件,然后用户上传excel~然后自动后台去解析excel里面的数 ...

lucene读取word,excel,pdf

前面在写lucene入门的时候,例子只能对txt文档建立索引,不能对word,excel,pdf建立索 ...

jxl解析excel并导入数据库

怎样用jxl解析多级表头的excel文件,确定某个单元格cell对应的标题?

原创:如何实现在Excel通过循环语句设置指定行的格式

原创:如何实现在Excel通过循环语句设置指定行的格式 一、需求: 想让excel的某些行(比如3的倍 ...

java jxl 操作excel 时老是这个错误

代码如下: InputStream iso = new FileInputStream(filepa ...

最新问答

更多

将十六进制的字符串转换为字符串(Convert hex-encoded String to String)

您希望将十六进制编码的数据用作AES密钥,但数据不是有效的UTF-8序列。 您可以将其解释为ISO Latin编码中的字符串,但AES(key: String, ...)初始化程序将该字符串转换回其UTF-8表示形式,也就是说,您将从开始时获得不同的关键数据。 所以你不应该把它转换成字符串。 使用 extension Data { init?(fromHexEncodedString string: String) } 方法从Swift中进行十六进制/二进制字符串转换,将十六进制编码的

将friendly_id添加到用户模型后,登录后的友好转发不起作用(Friendly forwarding after login doesn't work after adding friendly_id to the user model)

在应用程序控制器中,将redirect_back_or(path)方法更改为此方法。 def redirect_back_or(path) redirect_to session[:forwarding_url] || path session.delete(:forwarding_url) end 你有redirect_to request.referer之前负责将你重定向到最后一个url,即login_url。 我不知道为什么你要定义两个不同的方法

Qt + VS2010:由于 .dll从您的计算机丢失,程序无法启动(Qt + VS2010: The program can't start because .dll is missing from your computer)

您可能需要将有问题的DLL复制到您的可执行文件所在的文件夹中,或者确保DLL位于系统PATH中的文件夹中。 You likely need to copy the DLLs in question to the folder your executable is in, or ensure that the DLLs are located in a folder in the system's PATH.

AutoFixture使用内部setter创建属性(AutoFixture create property with internal setter)

理想情况下 ,测试不应该与类的internal成员交互,因为它们明确地从其公共API中排除 。 相反,这些成员将通过公共API启动的代码路径间接测试。 但是,如果在您的特定情况下这不可行,则可能的解决方法是从测试中明确地为内部属性赋值 。 您可以通过以下两种方式之一来实现: 通过使用InternalsVisibleTo属性将程序集中的所有内部成员公开给测试项目。 通过在特定接口中表示类的可修改状态并明确地实现它。 在您的示例中,选项1将是: // [assembly:InternalsVisib

使用Trigger.IO/PhoneGap在UIWebView中使用focus()事件自动显示键盘(Show keyboard automatically with focus() event in UIWebView using Trigger.IO/PhoneGap)

访问UIWebView不是我们在当前版本的插件中正确公开的东西(但我们很快就会支持)。 现在,如果您想尝试一下,可以添加 extern UIWebView *webView; 在插件文件的顶部,这将使您的API方法中的变量webView可用。 这将很快停止工作,所以我建议你现在只用它来测试一下。 2012年10月更新 : 该应用程序的Web视图现在通过ForgeApp : http : ForgeApp 例如: [ForgeApp sharedApp].webView Access to t

ASP.NET MVC控件(ASP.NET MVC Control)

您可以使用RadComboBox以及此处找到的此telerik社区项目提供的一些小调整。 应该在MVC中都能正常工作。 You can use the RadComboBox along with a little tweaking as provided for by this telerik community project, found here. Should all work fine in MVC.

在后期保存上下文 - 将指针保存到上下文?(Saving Context At a Later Stage - Saving Pointer To Context ? Core Data)

是的,您可以在循环后保存上下文。 它比每次迭代中的保存要好得多。 如果你看一下MagicalRecord src,你会看到MR_contextForCurrentThread总是为相同的线程返回相同的上下文,如果没有上下文的线程,MagicalRecord会创建它。 此外,您不需要传递上下文[_entityClass createInContext:context] ,只需要[_entityClass MR_createEntity] - 它将在当前线程的上下文中创建 Yes, you can

tinyMce函数用于确定弹出窗口是否已打开(tinyMce function to determine if popup is already open)

这是我要去的解决方案: 我似乎已经确认: - windowManager.open()不会像window.open()那样返回对窗口的引用 - windowManager没有内置方法来限制可以打开的实例数。 但它确实有一种方法可以将onClose函数添加到插件窗口:ed.windowManager.onClose.add(function(){alert('Closing!');}); 所以我将在onClick代码中使用一个变量来跟踪弹出窗口是否已被打开和关闭。 onClose函数将该变量标记为

使用nil调用Document.find在mongodb中无效(Calling Document.find with nil is invalid in mongodb)

OrderController #new调用OrderController#current_cart,它运行Cart.find(session [:cart_id])。 在会话开始时没有:cart_id,即session [:cart_id]为nil,你得到上面的Mongoid :: Errors :: InvalidFind异常。 请注意,当您正在抢救ActiveRecord :: RecordNotFound时,您的救援子句不会挽救该异常。 您正在使用Mongoid,而不是ActiveRec

在函数中返回postgresql查询结果(Return postgresql query result in a function)

假设您正在使用nodejs和pg模块。 正如您所说,由于查询功能是异步的,您无法直接将结果返回给调用者。 传统上,在nodejs中,调用者传递一个回调函数来处理结果或错误(如果有的话)。 在Kotlin中,这看起来像: client.query(MY_QUERY_TEMPLATE, params) { err, result -> if (err != null) { // do something with the error }