0
我正在寻找Powershell,vbscript或Excel VBA中脚本形式的Excel公式转换。我试图获得列标题列表和它下面的字符串的最大长度。列出列标题并获取每列的最大字符串长度
通常情况下,我做的是手动在Excel中打开.txt文件,从那里我能得到头名。接下来,我创建一个数组公式= MAX(LEN(A1:A100,000))例如。这将获得列中字符串的最大长度。我会对其他栏执行相同的公式。
现在我无法做到这一点,因为文件已增加到1GB的大小,我无法再打开它们,我的桌面崩溃了。这也可能是因为它们超过100万行Excel无法处理。我的朋友建议Powershell,但我知识有限..不知道它是否可以在vbscript或Excel VBA中完成。
在此先感谢您的帮助。
下面的代码适用的.csv文件,但不与.TXT分隔的文件 -
$fileName = "C:\Desktop\EFile.csv"
<#
Sample format of c:\temp\data.csv
"id","name","grade","address"
"1","John","Grade-9","test1"
"2","Ben","Grade-9","test12222"
"3","Cathy","Grade-9","test134343"
#>
$colCount = (Import-Csv $fileName | Get-Member | Where-Object {$_.MemberType -eq 'NoteProperty'} | Measure-Object).Count
$csv = Import-Csv $fileName
$csvHeaders = ($csv | Get-Member -MemberType NoteProperty).name
$dict = @{}
foreach($header in $csvHeaders) {
$dict.Add($header,0)
}
foreach($row in $csv)
{
foreach($header in $csvHeaders)
{
if($dict[$header] -le ($row.$header).Length)
{
$dict[$header] =($row.$header).Length
}
}
}
$dict.Keys | % { "key = $_ , Column Length = " + $dict.Item($_) }
你有什么试过,你试过的怎么样都失败了?理想情况下,您应该提供您尝试过的[最小,完整和可验证的示例](https://stackoverflow.com/help/mcve),并包含有关失败的具体信息,包含错误消息和/或错误的输出。 SO不是代码写入服务;最好的问题是提供有用信息的问题,以便那些回答问题的人可以指导你设计自己的正确答案。参见[如何提出一个好问题](https://stackoverflow.com/help/how-to-ask)。 –
谢谢。我编辑我的文章,我以前在Excel中执行它..我打开.txt文件,获取标题名称并插入公式。但是,自从Excel崩溃后,我不能再这样做了,可能是由于超过100万行记录。我的桌面最终崩溃。 –
请将您的代码精简至尽可能最小的示例,以说明您的问题并在此处发布代码。我们很乐意提供帮助,只要我们知道您正在使用的确切代码,而不必问几十个问题。 – PeterT