在没有安装Excel的情况下将CSV文件转换为PowerShell中的Excel工作簿

时间:2015-07-17 09:46:54

标签: excel csv powershell

我在远程服务器上运行PowerShell脚本,该脚本以.csv文件的形式生成报告。我想将这些csv文件作为单个Excel工作簿的单独工作表加入。

但是,远程服务器没有安装Office,因此我无法使用Com-Object方法。

此外,“Microsoft.JET.OLEDB.4.0”和“Microsoft.ACE.OLEDB.12.0”提供程序均未在计算机上注册。

我无法下载任何内容,因为脚本必须是通用的,并且应该能够在大型服务器池中的任何服务器上运行。

有什么方法可以达到我的目标或者我走到了死胡同?

或者我是否可以将CSV文件链接在一起,以便点击一个单元格,然后打开其他CSV文件?

快速帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

如果你可以运行Python3代码,那就是(将CONSTS改为你的需要!)

# CONSTS:

input_file = "import.csv" # import file (.csv)
output_file = "export.xlsx"  # only .xlsx
csv_seperator = ","

# CONSTS END

import openpyxl

file = open(input_file, "r")  # Load file

wb = openpyxl.Workbook()  # Create empty xlsx
ws = wb.active

linec = 1

for line in file:
    split = line.split(csv_seperator)
    columnc = 1
    for v in split:
        c = ws.cell(row = linec, column = columnc)
        try:
            int(v)  # Numbers should be saved as numbers.
            c.value = int(v)
        except:
            c.value = v
        columnc += 1
    linec += 1

wb.save(output_file)
print("Finished!")

这需要Import.csv并将其转换为Export.xlsx

请注意正常工作需要openpyxl(Python_base_dir - >脚本 - > pip install openpyxl

编辑: 要将文件和csv_seperator作为参数,请将CONSTS部分更改为:

import sys
input_file = sys.argv[1] # import file (.csv)
output_file = sys.argv[2]  # only .xlsx
csv_seperator = sys.argv[3]

用法:python csvconv.py Import.csv Export.csv,

注意,目前没有Index-Out-Of-Bound捕手,所以当没有提供参数时它会崩溃!

答案 1 :(得分:0)

检查这是否符合您的需求:

CSVs to multi-sheet XLS without Excel installed. Powershell

您需要在要生成excel工作簿的任何服务器上安装powershell模块。