Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

Tôi sẽ sử dụng XLRD - nó nhanh hơn, nền tảng chéo và hoạt động trực tiếp với tệp.

Tính đến phiên bản 0.8.0,

# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
2 đọc cả hai tệp XLS và XLSX.

Nhưng kể từ phiên bản 2.0.0, hỗ trợ đã được giảm trở lại chỉ XLS.only XLS.

import xlrd
import csv

def csv_from_excel():
    wb = xlrd.open_workbook('your_workbook.xls')
    sh = wb.sheet_by_name('Sheet1')
    your_csv_file = open('your_csv_file.csv', 'wb')
    wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)

    for rownum in xrange(sh.nrows):
        wr.writerow(sh.row_values(rownum))

    your_csv_file.close()

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

Tomerikoo

16.8K15 Huy hiệu vàng38 Huy hiệu bạc57 Huy hiệu đồng15 gold badges38 silver badges57 bronze badges

Đã trả lời ngày 27 tháng 3 năm 2012 lúc 6:43Mar 27, 2012 at 6:43

7

Tôi sẽ sử dụng

# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
3. Các bộ phận nặng về mặt tính toán được viết bằng Cython hoặc C-Extensions để tăng tốc quá trình và cú pháp rất sạch sẽ. Ví dụ: nếu bạn muốn biến "Sheet1" từ tệp "your_workbook.xls" thành tệp "your_csv.csv", bạn chỉ cần sử dụng hàm cấp cao nhất
# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
4 và phương thức
# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
5 từ lớp
# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
6 như sau:

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')

Cài đặt

# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
7 làm giảm bớt
# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
8 được đề cập trong các câu trả lời khác.

Đã trả lời ngày 1 tháng 10 năm 2014 lúc 17:01Oct 1, 2014 at 17:01

PhilephilephilE

1.57514 Huy hiệu bạc20 Huy hiệu đồng14 silver badges20 bronze badges

3

Có thể ai đó thấy đoạn mã sẵn sàng sử dụng này hữu ích. Nó cho phép tạo CSV từ tất cả các bảng tính trong sổ làm việc của Excel.

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

Python 2:

# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])

Python 3:

import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])

Hendrik

3836 Huy hiệu bạc16 Huy hiệu Đồng6 silver badges16 bronze badges

Đã trả lời ngày 16 tháng 9 năm 2013 lúc 20:57Sep 16, 2013 at 20:57

Andilabsandilabsandilabs

21.3K14 Huy hiệu vàng112 Huy hiệu bạc147 Huy hiệu đồng14 gold badges112 silver badges147 bronze badges

5

Tôi sẽ sử dụng CSVKIT, sử dụng XLRD (cho XLS) và OpenPyXL (cho XLSX) để chuyển đổi bất kỳ dữ liệu bảng nào thành CSV.

Sau khi được cài đặt, với các phụ thuộc của nó, đó là một vấn đề:

python in2csv myfile > myoutput.csv

Nó chăm sóc tất cả các vấn đề phát hiện định dạng, vì vậy bạn có thể vượt qua nó về bất kỳ nguồn dữ liệu dạng bảng nào. Đó là nền tảng chéo quá (không phụ thuộc Win32).

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

Beroe

11.3k4 Huy hiệu vàng33 Huy hiệu bạc79 Huy hiệu đồng4 gold badges33 silver badges79 bronze badges

Đã trả lời ngày 27 tháng 3 năm 2012 lúc 8:42Mar 27, 2012 at 8:42

Wombatwombatwombat

2291 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges

1

Trước tiên, hãy đọc bảng tính Excel của bạn vào Pandas, mã bên dưới sẽ nhập bảng tính Excel của bạn vào Pandas dưới dạng loại đặt hàng có chứa tất cả bảng tính của bạn dưới dạng DataFrames. Sau đó, chỉ cần sử dụng bảng tính_name làm khóa để truy cập bảng tính cụ thể dưới dạng dataFrame và chỉ lưu bảng tính cần thiết dưới dạng tệp CSV bằng cách sử dụng df.to_csv (). Hy vọng điều này sẽ tập luyện trong trường hợp của bạn.

import pandas as pd
df = pd.read_excel('YourExcel.xlsx', sheet_name=None)
df['worksheet_name'].to_csv('YourCsv.csv')  

Nếu tệp Excel của bạn chỉ chứa một bảng tính thì chỉ cần sử dụng mã bên dưới:

import pandas as pd
df = pd.read_excel('YourExcel.xlsx')
df.to_csv('YourCsv.csv') 

Nếu ai đó muốn chuyển đổi tất cả các bảng tính excel từ sổ làm việc excel đơn sang các tệp CSV khác nhau, hãy thử bên dưới mã:

import pandas as pd
def excelTOcsv(filename):
    df = pd.read_excel(filename, sheet_name=None)  
    for key, value in df.items(): 
        return df[key].to_csv('%s.csv' %key)

Chức năng này đang hoạt động như một tờ Excel của cùng một sổ làm việc Excel sang nhiều trình chuyển đổi tệp CSV. Trong đó khóa là tên trang và giá trị là nội dung bên trong trang tính.

Đã trả lời ngày 1 tháng 8 năm 2019 lúc 17:52Aug 1, 2019 at 17:52

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

Ashu007Ashu007Ashu007

7271 Huy hiệu vàng9 Huy hiệu bạc13 Huy hiệu đồng1 gold badge9 silver badges13 bronze badges

@andi tôi đã kiểm tra mã của bạn, nó hoạt động rất tốt, nhưng

Trong tờ của tôi có một cột như thế này

2013-03-06T04:00:00

ngày và thời gian trong cùng một ô

Nó bị cắt bỏ trong quá trình xuất, nó giống như thế này trong tệp đã xuất

41275.0416667

Các cột khác là OK.

CSVKIT, ở phía bên kia, làm OK với cột đó nhưng chỉ xuất một tờ và các tệp của tôi có nhiều.

Đã trả lời ngày 20 tháng 1 năm 2015 lúc 19:00Jan 20, 2015 at 19:00

user1632812user1632812user1632812

3671 Huy hiệu bạc12 Huy hiệu đồng1 silver badge12 bronze badges

3

XLSX2CSV nhanh hơn gấu trúc và XLRD.faster than pandas and xlrd.

xlsx2csv -s 0 crunchbase_monthly_.xlsx cruchbase

Tệp Excel thường đi kèm với N SheetName.

-s is sheetname index.

Sau đó, thư mục Cruchbase sẽ được tạo, mỗi tờ thuộc XLSX sẽ được chuyển đổi thành một CSV duy nhất.

P.S. CSVKIT cũng tuyệt vời.

Đã trả lời ngày 2 tháng 11 năm 2016 lúc 5:50Nov 2, 2016 at 5:50

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

CodeFarmerCodeFarmerCodeFarmer

2.55622 huy hiệu bạc31 huy hiệu đồng22 silver badges31 bronze badges

0

Trích dẫn câu trả lời từ Scott Ming, hoạt động với sổ làm việc có chứa nhiều tờ:

Đây là một tập lệnh Python getSheet.py (gương), bạn nên cài đặt

# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
3 và
# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
2 trước khi bạn sử dụng nó.

Chạy cái này:

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
0

Nó làm việc như thế nào?

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
1

Chuyển đổi sang một số XLSX:

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
2

Chuyển đổi sang một số CSV:

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
3

import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
1:

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
4

Đã trả lời ngày 25 tháng 1 năm 2018 lúc 3:27Jan 25, 2018 at 3:27

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

Chúng ta có thể sử dụng pandas lib của Python để liên kết tệp XLS sang tệp CSV bên dưới mã sẽ chuyển đổi tệp XLS thành tệp CSV. nhập khẩu gấu trúc dưới dạng PD

Đọc tệp excel từ đường dẫn cục bộ:

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
5

Trang trí không gian có mặt trên các cột:

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
6

Gửi khung dữ liệu đến tệp CSV sẽ là biểu tượng ống được phân tách và không có chỉ mục:

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
7

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

Pmerlet

2.5403 Huy hiệu vàng22 Huy hiệu bạc38 Huy hiệu Đồng3 gold badges22 silver badges38 bronze badges

Đã trả lời ngày 12 tháng 2 năm 2018 lúc 8:33Feb 12, 2018 at 8:33

RohitrohitRohit

6146 Huy hiệu bạc17 Huy hiệu đồng6 silver badges17 bronze badges

1

Python không phải là công cụ tốt nhất cho nhiệm vụ này. Tôi đã thử một số cách tiếp cận trong Python nhưng không ai trong số chúng hoạt động 100% (ví dụ: 10% chuyển đổi thành 0,1 hoặc các loại cột bị rối tung, v.v.). Công cụ phù hợp ở đây là PowerShell, bởi vì nó là một sản phẩm MS (như Excel) và có sự tích hợp tốt nhất.

Chỉ cần tải xuống tập lệnh PowerShell này, chỉnh sửa dòng 47 để nhập đường dẫn cho thư mục chứa các tệp Excel và chạy tập lệnh bằng PowerShell.

Đã trả lời ngày 4 tháng 2 năm 2020 lúc 19:39Feb 4, 2020 at 19:39

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

LomaphlomaphLoMaPh

1.2362 huy hiệu vàng17 Huy hiệu bạc32 Huy hiệu đồng2 gold badges17 silver badges32 bronze badges

Sử dụng XLRD là một cách thiếu sót để làm điều này, bởi vì bạn mất các định dạng ngày trong Excel.

Trường hợp sử dụng của tôi là như sau.

Lấy một tệp Excel với nhiều hơn một tờ và chuyển đổi từng tệp thành một tệp của riêng nó.

Tôi đã thực hiện điều này bằng cách sử dụng thư viện XLSX2CSV và gọi cái này bằng cách sử dụng quy trình con.

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
8

Đã trả lời ngày 13 tháng 11 năm 2016 lúc 19:45Nov 13, 2016 at 19:45

Tôi đã thử nghiệm tất cả các anwers, nhưng tất cả chúng đều quá chậm đối với tôi. Nếu bạn đã cài đặt Excel, bạn có thể sử dụng COM.

Tôi nghĩ ban đầu nó sẽ chậm hơn vì nó sẽ tải mọi thứ cho ứng dụng Excel thực tế, nhưng nó không phải là các tệp lớn. Có lẽ bởi vì thuật toán để mở và lưu các tệp chạy một mã được biên dịch tối ưu hóa rất nhiều, sau tất cả, Microsoft Guys kiếm được rất nhiều tiền.

import pandas as pd
data_xls = pd.read_excel('your_workbook.xls', 'Sheet1', index_col=None)
data_xls.to_csv('your_csv.csv', encoding='utf-8')
9

Đây là mã rất thô và sẽ không kiểm tra lỗi, in trợ giúp hoặc bất cứ điều gì, nó sẽ chỉ tạo một tệp CSV cho mỗi tệp phù hợp với mẫu bạn đã nhập vào chức năng để bạn có thể xử lý rất nhiều tệp chỉ khởi chạy ứng dụng Excel Một lần.

Đã trả lời ngày 7 tháng 2 năm 2017 lúc 11:51Feb 7, 2017 at 11:51

Caiohamamuracaiohamamuracaiohamamura

2.07519 Huy hiệu bạc22 Huy hiệu đồng19 silver badges22 bronze badges

Tôi ghét dựa vào phần mềm độc quyền của Windows Excel, không phải là nền tảng chéo, thử nghiệm

import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
2 của tôi cho .xls, sử dụng
# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
2 dưới mui xe, không thể phân tích chính xác ngày định dạng).

Ví dụ: tệp XLS này, khi được phân tích cú pháp với

import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
2, sẽ chuyển đổi ô
import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
5 của
import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
6 thành
import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
7, trong khi khi được chuyển đổi thành CSV thông qua Excel -> save_as (sử dụng bên dưới) ô
import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
5 sẽ là
import xlrd
import csv
from os import sys

def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'w', encoding="utf-8") as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in range(worksheet.nrows):
                wr.writerow(worksheet.row_values(rownum))

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
9.

# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
0

Trên đây sẽ có một

python in2csv myfile > myoutput.csv
0 chứa .xls và xuất chúng lên
python in2csv myfile > myoutput.csv
1 dưới dạng .csv-nó sẽ
python in2csv myfile > myoutput.csv
2 rằng có chính xác 1 tờ không trống trong .xls; Nếu bạn cần xử lý nhiều tờ thành nhiều CSV thì bạn sẽ cần chỉnh sửa
python in2csv myfile > myoutput.csv
3.

Đã trả lời ngày 7 tháng 4 năm 2019 lúc 19:19Apr 7, 2019 at 19:19

sam-6174sam-6174sam-6174

2.8361 Huy hiệu vàng29 Huy hiệu bạc33 Huy hiệu đồng1 gold badge29 silver badges33 bronze badges

Tôi đã cố gắng sử dụng thư viện

# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
2 để chuyển đổi định dạng
python in2csv myfile > myoutput.csv
5 thành
python in2csv myfile > myoutput.csv
6, nhưng tôi đã gặp lỗi:
python in2csv myfile > myoutput.csv
7. Điều đó đã xảy ra vì gói này không còn đọc bất kỳ định dạng nào khác trừ khi
python in2csv myfile > myoutput.csv
8, theo tài liệu XLRD.

Sau câu trả lời từ Chris Withers, tôi có thể thay đổi động cơ cho hàm

python in2csv myfile > myoutput.csv
9 từ
# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
3, sau đó tôi có thể tạo một hàm chuyển đổi bất kỳ trang tính nào từ bảng tính Excel của bạn mà bạn muốn thành công. Để hoạt động chức năng bên dưới, đừng quên cài đặt thư viện
import pandas as pd
df = pd.read_excel('YourExcel.xlsx', sheet_name=None)
df['worksheet_name'].to_csv('YourCsv.csv')  
1 từ đây.
In order to work the function below, don't forget to install the
import pandas as pd
df = pd.read_excel('YourExcel.xlsx', sheet_name=None)
df['worksheet_name'].to_csv('YourCsv.csv')  
1 library from here.

Function:

# -*- coding: utf-8 -*-
import xlrd
import csv
from os import sys
 
def csv_from_excel(excel_file):
    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open(u'{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])

if __name__ == "__main__":
    csv_from_excel(sys.argv[1])
1

Đã trả lời ngày 7 tháng 1 lúc 19:06Jan 7 at 19:06

Hướng dẫn excel to csv python without pandas - excel sang csv python không có gấu trúc

Làm thế nào tôi có thể xem các tệp excel mà không có gấu trúc?

Làm thế nào để đọc các giá trị trong tệp excel mà không cần sử dụng gấu trúc, openpyxl, v.v ... trong Python ??..
python..
python-3.x..
python-2.7..
jupyter-notebook..
google-colaboratory..

OpenPyxl có thể ghi vào CSV không?

Sử dụng mô -đun XLRD hoặc OpenPyXL để đọc các tài liệu XLS hoặc XLSX tương ứng và mô -đun CSV để viết ...
Mở sổ làm việc XLS ..
Tham khảo bảng tính đầu tiên ..
Mở trong nhị phân Viết tệp CSV đích ..
Tạo đối tượng người viết CSV mặc định ..
Vòng lặp trên tất cả các hàng của bảng tính đầu tiên ..
Đổ các hàng vào CSV ..