如何将 .csv 批量转换为 .xls/xlsx

如何将 .csv 批量转换为 .xls/xlsx

我正在寻找一种方法来将 .csv 文件目录快速转换为 .xls 或 .xlsx 格式(如果我可以执行其中任一操作就好了)。

有没有简单的方法可以做到这一点,或者我需要安装第三方程序?

答案1

假设你喜欢并且拥有 Python(出于某种原因),你可以使用我编写的这个脚本:

import os
import glob
import csv
import xlwt # from http://www.python-excel.org/

for csvfile in glob.glob(os.path.join('.', '*.csv')):
    wb = xlwt.Workbook()
    ws = wb.add_sheet('data')
    with open(csvfile, 'rb') as f:
        reader = csv.reader(f)
        for r, row in enumerate(reader):
            for c, val in enumerate(row):
                ws.write(r, c, val)
    wb.save(csvfile + '.xls')

在包含所有 CSV 文件的目录中运行,它会将它们全部转换并在末尾添加“.xls”。

对于 Excel 2007+(xlsx 文件),最多支持约 1 Mrows:

import os
import glob
import csv
import openpyxl # from https://pythonhosted.org/openpyxl/ or PyPI (e.g. via pip)

for csvfile in glob.glob(os.path.join('.', '*.csv')):
    wb = openpyxl.Workbook()
    ws = wb.active
    with open(csvfile, 'rb') as f:
        reader = csv.reader(f)
        for r, row in enumerate(reader, start=1):
            for c, val in enumerate(row, start=1):
                ws.cell(row=r, column=c).value = val
    wb.save(csvfile + '.xlsx')

答案2

我同情你!我不得不做同样的转换。我试图使用 openpyxl 处理数据,但由于某种原因,它无法对 csv 文件执行我想要的操作,因此必须先转换为 xlsx。

我使用了 Python 和 Pandas。我使用的是 Python 3。

import pandas as pd
import os

for (dirname, dirs, files) in os.walk('.'): #source directory
for filename in files:
        if filename.endswith('.csv'):
            df = pd.read_csv(filename)
            df.to_excel(filename + '.xlsx')
            os.remove(filename)  #deletes csv file

答案3

这里是一个据称可以完成该任务的 perl 脚本,但是对于 Excel 中已经内置的功能来说,似乎需要做很多工作。

答案4

对于 Windows?CoolUtils”总 CSV 转换器“命令行版本支持多种输出格式包括 JSON、Access、DBF、XML 和 SQL而且只需 40 美元。它可以递归子目录、删除原始 CSV 文件、将所有文件合并为一个文档等等。

http://www.coolutils.com/TotalCSVConverter

CSVConverter.exe <source> <destination> <options>

高级 CSV 转换器“($40-200)是一个便携式 EXE,可以快速完成此操作,无需安装 Excel。

http://www.dbf2002.com/csv-converter/commandline.html

"c:\Program Files\CSV Converter\csvcnv.exe" c:\base\*.csv c:\exports\ /TOXLSX /SRCHDR

SoftInterface 的“转换 XLS“可以使用 Excel(但不是必需的)并且价格更贵(500 美元以上),但支持更多格式并有更多选项。

http://www.softinterface.com/Convert-XLS/Convert-XLS.htm

"c:\Program Files (x86)\Softinterface, Inc\Convert XLS\ConvertXLS.exe" /V /S"c:\base\*.csv" /T"c:\exports\*.xlsx" /F6 /C51 /M2

数值“是一个可以执行直接转换的开源电子表格程序,但它在 2014 年 8 月已在 Windows 上停止使用。

http://www.gnumeric.org/

ssconvert file.csv file.xlsx

如果你安装了 Python,“csv2odf“是一个开源选项,使用模板方法生成 ods、odt、html、xlsx 或 docx 文件。

http://sourceforge.net/projects/csv2odf/

csv2odf data.csv template.odt output.xlsx

相关内容