我有一个字符串str。
$str="abcd_1
abcd_2
abcd_3"
首先在for循环中我连接字符串并使用回车符+换行符制作一个完整的Id' s字符串。 在分裂时我只使用新的线条字符。 我在从第二个单元格输入的数据中获得了前面的空格。
for($intRow = $trow ; $intRow -le $maxRow ; $intRow++){
$codeName = $currentCode
$fin = $codeName + "_" + $i + "`r`n"
$finCode=$finCode+$fin
$i= $i + 1
}
$currentSheet.Cells.Item($fRow,$currentCol).Value2 = $finCode
$clipboardData = $finCode.Split("`n").TrimStart()
$newClipboardData = $clipboardData.Where({$_.TrimStart() -ne ""}).ForEach({$_.TrimStart()})
[System.Windows.Forms.Clipboard]::SetText($newClipboardData)
$currentSheet.Cells.Item($fRow,$currentCol).Select() | Out-Null
$currentSheet.Paste() | Out-Null
答案 0 :(得分:0)
更加清晰准确。此示例显示如何使用换行符分割字符串。每次写下一行时只需增加$intRow
:
ForEach($strValue In $str.Split("`n"))
{
$currentSheet.Cells.Item($intRow,$currentCol).Value2 = $strValue
$intRow++
}
新守则:
[System.Windows.Forms.Clipboard]::SetText($str.Split("`n"))
$currentSheet.Cells.Item($intRow,$currentCol).Select() | Out-Null
$currentSheet.Paste() | Out-Null
答案 1 :(得分:0)
您可以使用修剪来消除空间。但是使用'r'n
拆分并不能给我正确的数据。它返回一行。:
$clipboardData = $str.Split("`n").TrimStart()
$newClipboardData = $clipboardData.Where({$_.TrimStart() -ne ""}).ForEach({$_.TrimStart()})
[System.Windows.Forms.Clipboard]::SetText($newClipboardData)
当我检查值的内容时,它没有任何前导空格,但在excel中粘贴时会显示一个空格。
$newClipboardData | %{ "-$_-" }
-Some Text-
-Some text With spaces -
-Some text again-