python: excel 워크북을 만들고 csv 파일을 워크시트로 덤프합니다.
Excel 워크북(xls/xlsx)에 새 워크시트로 덤프하고 싶은 csv 파일이 몇 개 없습니다.어떻게 이를 달성할 수 있습니까?
구글에서 'pyXLriter'를 찾았는데 프로젝트가 중단된 것 같습니다.'pyXLriter'를 사용해 보는 동안 대안/제안/모듈이 있는지 알고 싶습니다.
대단히 고맙습니다.
[편집]
여기 제 해결책이 있습니다. (누구나 훨씬 더 희박하고 많은 비단결 같은 해결책을 가지고 있나요?코멘트를 합니다. thx)
import glob
import csv
import xlwt
import os
wb = xlwt.Workbook()
for filename in glob.glob("c:/xxx/*.csv"):
(f_path, f_name) = os.path.split(filename)
(f_short_name, f_extension) = os.path.splitext(f_name)
ws = wb.add_sheet(str(f_short_name))
spamReader = csv.reader(open(filename, 'rb'), delimiter=',',quotechar='"')
row_count = 0
for row in spamReader:
for col in range(len(row)):
ws.write(row_count,col,row[col])
row_count +=1
wb.save("c:/xxx/compiled.xls")
print "Done"
"훨씬 더 말랐고, 훨씬 더 비단결 같은" 것이 무엇을 의미하는지는 확실하지 않지만, 당신은 확실히 그것을 조금 더 세련시킬 수 있습니다.
import glob, csv, xlwt, os
wb = xlwt.Workbook()
for filename in glob.glob("c:/xxx/*.csv"):
(f_path, f_name) = os.path.split(filename)
(f_short_name, f_extension) = os.path.splitext(f_name)
ws = wb.add_sheet(f_short_name)
spamReader = csv.reader(open(filename, 'rb'))
for rowx, row in enumerate(spamReader):
for colx, value in enumerate(row):
ws.write(rowx, colx, value)
wb.save("c:/xxx/compiled.xls")
이 xlwt 튜토리얼에서 필요한 모든 것을 찾을 수 있습니다.이 라이브러리(xlrd 및 xlwt)는 Python에서 Excel 상호 작용을 관리하기 위한 가장 일반적인 선택입니다.단점은 현재 Excel 이진 형식(.xls)만 지원한다는 것입니다.
xlsxwriter를 사용하여 python에서 excel 파일을 만들고 씁니다.
설치 방법: pip install xlsxwriter
import xlsxwriter
# Create an new Excel file and add a worksheet.
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()
# Widen the first column to make the text clearer.
worksheet.set_column('A:A', 20)
# Add a bold format to use to highlight cells.
bold = workbook.add_format({'bold': True})
# Write some simple text.
worksheet.write('A1', 'Hello')
# Text with formatting.
worksheet.write('A2', 'World', bold)
# Write some numbers, with row/column notation.
worksheet.write(2, 0, 123)
worksheet.write(3, 0, 123.456)
# Insert an image.
worksheet.insert_image('B5', 'logo.png')
workbook.close()
저는 항상 문자열을 통해 Office 2003 XML 형식을 작성합니다.xlsx 문서를 구성하는 문서를 작성하고 압축하는 것보다 훨씬 쉽고 관리하기 쉽습니다.또한 외부 라이브러리가 필요하지 않습니다.(그들만의 것을 쉽게 굴릴 수 있지만)
또한 Excel은 CSV 파일 로드를 지원합니다.공백으로 구분되거나 문자로 구분됩니다.바로 로드하거나 복사하여 붙여넣은 다음 옵션에서 텍스트 열 단추를 누릅니다.물론 이 옵션은 파이썬과는 아무런 관련이 없습니다.
GitHubrepo "Kampfmitexcel"에서도 사용할 수 있습니다.
import csv, xlwt, os
def input_from_user(prompt):
return raw_input(prompt).strip()
def make_an_excel_file_from_all_the_txtfiles_in_the_following_directory(directory):
wb = xlwt.Workbook()
for filename in os.listdir(data_folder_path):
if filename.endswith(".csv") or filename.endswith(".txt"):
ws = wb.add_sheet(os.path.splitext(filename)[0])
with open('{}\\{}'.format(data_folder_path,filename),'rb') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for rowx, row in enumerate(reader):
for colx, value in enumerate(row):
ws.write(rowx, colx, value)
return wb
if __name__ == '__main__':
path_to_data = input_from_user("Where is the data stored?: ")
xls = make_an_excel_file_from_all_the_txtfiles_in_the_following_directory(path_to_data)
xls_name = input_from_user('What do you want to name the excel file?: ')
xls.save('{}\\{}{}'.format(data_folder_path,xls_name,'.xls'))
print "Your file has been saved in the data folder."
이것은 당신의 대답 자체를 바탕으로 한 것입니다.하지만 xlsxwriter를 사용하는 이유는 xlsx 형식의 데이터를 더 많이 수용하기 때문입니다.xlwt는 65556 행 및 xls 형식으로 제한합니다.
import xlsxwriter
import glob
import csv
workbook = xlsxwriter.Workbook('compiled.xlsx')
for filename in glob.glob("*.csv"):
ws = workbook.add_worksheet(str(filename.split('.')[0]))
spamReader = csv.reader(open(filename, 'rb'), delimiter=',',quotechar='"')
row_count = 0
print filename
for row in spamReader:
for col in range(len(row)):
ws.write(row_count,col,row[col])
row_count +=1
workbook.close()
언급URL : https://stackoverflow.com/questions/5705588/python-creating-excel-workbook-and-dumping-csv-files-as-worksheets
'programing' 카테고리의 다른 글
"DNS_BLOCK_ASSERTION"(C 컴파일러 플래그)은 무엇입니까? (0) | 2023.06.14 |
---|---|
리눅스에서 직렬 포트 읽기 및 쓰기 (0) | 2023.06.14 |
compileSdkVersion과 targetSdkVersion의 차이점은 무엇입니까? (0) | 2023.06.14 |
C: 할당되지 않은 포인터가 NULL이 아닌 예측 불가능한 메모리를 가리키는 이유는 무엇입니까? (0) | 2023.06.14 |
입력이 C의 정수 유형인지 확인합니다. (0) | 2023.06.14 |