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