복붙노트

[PYTHON] 파이썬은 csv를 xlsx로 변환합니다.

PYTHON

파이썬은 csv를 xlsx로 변환합니다.

이 게시물에는 csv에서 xls로 변환하는 Python 예제가 있습니다.

그러나 xls 작동하지 않습니다 내 파일을 65536 개 이상의 행이 있습니다. xlsx라는 파일의 이름을 지정하면 차이가 없습니다. xlsx로 변환 할 파이썬 패키지가 있습니까?

해결법

  1. ==============================

    1.다음은 xlsxwriter를 사용한 예입니다.

    다음은 xlsxwriter를 사용한 예입니다.

    import os
    import glob
    import csv
    from xlsxwriter.workbook import Workbook
    
    
    for csvfile in glob.glob(os.path.join('.', '*.csv')):
        workbook = Workbook(csvfile[:-4] + '.xlsx')
        worksheet = workbook.add_worksheet()
        with open(csvfile, 'rt', encoding='utf8') as f:
            reader = csv.reader(f)
            for r, row in enumerate(reader):
                for c, col in enumerate(row):
                    worksheet.write(r, c, col)
        workbook.close()
    

    참고로, Excel 2007 xlsx / xlsm 파일을 읽고 쓸 수있는 openpyxl 패키지도 있습니다.

    희망이 도움이됩니다.

  2. ==============================

    2.내 도서관 pyexcel,

    내 도서관 pyexcel,

     $ pip install pyexcel pyexcel-xlsx
    

    당신은 하나의 명령 줄에서 그것을 할 수 있습니다 :

    from pyexcel.cookbook import merge_all_to_a_book
    # import pyexcel.ext.xlsx # no longer required if you use pyexcel >= 0.2.2 
    import glob
    
    
    merge_all_to_a_book(glob.glob("your_csv_directory/*.csv"), "output.xlsx")
    

    각 CSV는 자체 시트를 가지며 이름은 파일 이름이됩니다.

  3. ==============================

    3..csv 파일을 읽고 .xlsx 파일로 저장하기 위해 팬더 라이브러리를 독점적으로 사용하는 대답을 추가합니다. 이 예제는 pandas.read_csv (docs에 링크) 및 pandas.dataframe.to_excel (docs에 링크)을 사용합니다.

    .csv 파일을 읽고 .xlsx 파일로 저장하기 위해 팬더 라이브러리를 독점적으로 사용하는 대답을 추가합니다. 이 예제는 pandas.read_csv (docs에 링크) 및 pandas.dataframe.to_excel (docs에 링크)을 사용합니다.

    완전히 재현 할 수있는 예제에서는 numpy를 사용하여 임의의 숫자 만 생성합니다.이 예제는 사용자의 .csv 파일을 사용하려는 경우 제거 할 수 있습니다.

    import pandas as pd
    import numpy as np
    
    # Creating a dataframe and saving as test.csv in current directory
    df = pd.DataFrame(np.random.randn(100000, 3), columns=list('ABC'))
    df.to_csv('test.csv', index = False)
    
    # Reading in test.csv and saving as test.xlsx
    
    df_new = pd.read_csv('test.csv')
    writer = pd.ExcelWriter('test.xlsx')
    df_new.to_excel(writer, index = False)
    writer.save()
    
  4. ==============================

    4.

    from openpyxl import Workbook
    import csv
    
    
    wb = Workbook()
    ws = wb.active
    with open('test.csv', 'r') as f:
        for row in csv.reader(f):
            ws.append(row)
    wb.save('name.xlsx')
    
  5. ==============================

    5.내가 openpyxl lib로 그것을하는 방법 :

    내가 openpyxl lib로 그것을하는 방법 :

    import csv
    from openpyxl import Workbook
    
    def convert_csv_to_xlsx(self):
        wb = Workbook()
        sheet = wb.active
    
        CSV_SEPARATOR = "#"
    
        with open("my_file.csv") as f:
            reader = csv.reader(f)
            for r, row in enumerate(reader):
                for c, col in enumerate(row):
                    for idx, val in enumerate(col.split(CSV_SEPARATOR)):
                        cell = sheet.cell(row=r+1, column=idx+1)
                        cell.value = val
    
        wb.save("my_file.xlsx")
    
  6. ==============================

    6.간단한 방법이있다.

    간단한 방법이있다.

    import os
    import csv
    import sys
    
    from openpyxl import Workbook
    
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    if __name__ == '__main__':
        workbook = Workbook()
        worksheet = workbook.active
        with open('input.csv', 'r') as f:
            reader = csv.reader(f)
            for r, row in enumerate(reader):
                for c, col in enumerate(row):
                    for idx, val in enumerate(col.split(',')):
                        cell = worksheet.cell(row=r+1, column=c+1)
                        cell.value = val
        workbook.save('output.xlsx')
    
  7. from https://stackoverflow.com/questions/17684610/python-convert-csv-to-xlsx by cc-by-sa and MIT license