我正在使用以下 Powershell 脚本来删除NumberFormat
大量文件的列中的单元格,以便显示所有分数。该列可能有小数、文本或日期等;仅需要应用这些十进制/货币格式(格式为0*
or *#*
)的单元格
但是它很慢(每秒检查/更新两个或三个单元格)。有更好/更快的方法吗?
$WorkBook = $Excel.Workbooks.Open($fileName)
$WorkSheet = $WorkBook.Worksheets.Item(1)
$cell = $WorkSheet.Cells
$ColumnIndex = 10 # The column may have decimal, text or date, etc.
$i = 2
while ($cell.Item($i, 1).value2 -ne $Null)
# Replace it to find the last row# of column 1 may cut the time in half? How?
{
$c = $cell.Item($i, $ColumnIndex)
if (($c.NumberFormat -like "0*") -or $c.NumberFormat -like "*#*")
{
"$i : $($c.NumberFormat) $($c.value2) "
$c.NumberFormat = $Null
}
$i++
}
更新:
.NetMicrosoft.Office.Interop.Excel
会快得多吗?或者将文件转换为 xlsx 格式并使用System.IO.Package.IO
?