本帖最后由 小白龙 于 2024-11-11 15:14 编辑
情况是这样的, 我要处理一个xls文件, 我在excel中打开时, 身份证号码一列显示的是完整的数字, 为了能让powershell处理xls, 我把xls另存成了csv文件, 处理之后, 我用下面的代码又另存为了xlsx, 但是问题来了, 在excel中打开后, 身份证号码一列, 全是科学计数法的显示, 不像原来xls那样显示完整的身份证号数字了
下面是gpt给的代码, 求路过大佬指导- # 定义 CSV 文件路径和目标 XLSX 文件路径
- $csvFile = "C:\Users\Administrator\Desktop\1966\OK.csv"
- $excelFile = "C:\Users\Administrator\Desktop\1966\OK2.xlsx"
-
- # 创建 Excel 应用程序对象
- $excel = New-Object -ComObject Excel.Application
- $excel.Visible = $false
- $excel.DisplayAlerts = $false
-
- # 打开 CSV 文件
- $workbook = $excel.Workbooks.Open($csvFile)
- $worksheet = $workbook.Sheets.Item(1) # 获取第一个工作表
-
- # 假设身份证号码在第四列,将第四列设置为文本格式
- $worksheet.Columns.Item(4).NumberFormat = "@" # "@" 表示文本格式
-
- # 使用文件格式代码保存为 XLSX 格式 (51 代表 .xlsx 格式)
- $workbook.SaveAs($excelFile, 51)
-
- # 关闭工作簿并退出 Excel 应用程序
- $workbook.Close()
- $excel.Quit()
-
- # 释放 COM 对象
- [System.Runtime.Interopservices.Marshal]::ReleaseComObject($worksheet) | Out-Null
- [System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook) | Out-Null
- [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
复制代码
|