python3 写csv文件,xlsx导图片到表格

import csv
with open("XXX.csv","a",newline="",encoding='utf-8') as datacsv: # a 是后续可以加入内容,w 参数则是覆盖
     #dialect为打开csv文件的方式,默认是excel,delimiter="\t"参数指写入的时候的分隔符
     csvwriter = csv.writer(datacsv,dialect = ("excel"))
     #csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
     csvwriter.writerow(["A","B","C","D"])

#小插曲
#读取指定目录下的菜单[文件和文件夹]
import os
alist = os.listdir('./')  #当前目录的文件夹和文件,返回值是列表
#get it!

利用 xlsxwriter,导出带图片的表格

def write(big_data,my_type):
    workbook = xlsxwriter.Workbook("watch_band_%s.xlsx"%my_type)
    for key in big_data:
        # 从第二行开始,首行留给中文注释
        index = 2
        data = big_data[key]
        worksheet = workbook.add_worksheet(str(key))
        # 参数理解: A1,A为列的序列号,1则是行数
        worksheet.write("A1", '排名')
        worksheet.write("B1", 'ASIN')
        worksheet.write("C1", '图片')
        worksheet.write("D1", '价格')
        worksheet.write("E1", '评分')
        worksheet.write("F1", '类别')
        worksheet.write("G1", '链接')
        worksheet.write("H1", '图片链接')
        worksheet.write("I1", '时间')
        print(index)
        for msg in data:
            print(msg)
            # 加宽第一列使文本更清晰。
            worksheet.set_column('A:A', 30)

            print('A' + str(index), '%s' % msg[-4])
            worksheet.write('A' + str(index), '%s' % msg[-4])
            worksheet.write("B" + str(index), "%s" % msg[2])
            # 插入一张图片。
            filename='./band_img/%s.jpg' % msg[2]
            try:
            	# 自定义方法
                modify_img_site(filename)
                worksheet.insert_image('C' + str(index),filename, {'x_scale': 0.5, 'y_scale': 0.5})
            except:
                worksheet.write('C' + str(index), 'none')

            worksheet.write('D' + str(index), '%s' % msg[3])
            worksheet.write('E' + str(index), '%s' % msg[4])
            worksheet.write('F' + str(index), '%s' % msg[1])
            worksheet.write('G' + str(index), 'https://www.amazon.com/dp/%s' % msg[2])
            worksheet.write('H' + str(index), '%s' % msg[-1])
            # worksheet.write('I' + str(index), '%s' % msg[-1])
            # 插入一张位偏移图片。
            # worksheet.insert_image('B12', 'python.png', {'x_offset': 15, 'y_offset': 10})

            # 插入一张缩放了的图片。
            # worksheet.write('23', '插入一张缩放了的图片:')
            # worksheet.insert_image('B23', 'python.png', {'x_scale': 0.5, 'y_scale': 0.5})
            index += 1

    workbook.close()

#读取xls,xlsx文件?

import xlrd
ef xlrd_reader():
    exce = xlrd.open_workbook('/home/yice/Documents/本尼维产品资料.xls')

    # 获取excel中对应的sheet
    print('所有sheet名称', exce.sheet_names())  # 获取所有sheet名称
    sheets = exce.sheets()  # 获取所有sheets
    # sheet = exce.sheets()[0]    #也可以通过下标去访问某个具体的sheet
    sheet1 = exce.sheet_by_name('Sheet1')  # 通过sheet名称获取
    # sheet2 = exce.sheet_by_index(1) #通过下标获取某个sheet

    # 获取sheet中行数和列数
    nrows = sheet1.nrows
    ncols = sheet1.ncols
    print('对应sheet中行数:%d行,列数:%d列' % (nrows, ncols))

    data=[]
    for msg in range(nrows):
        data.append(sheet1.row_values(msg))
        # print(sheet1.row_values(msg))
    # 获取sheet中整行或整列的数据(数组)
    # row1 = sheet1.row_values(3)  # 通过下标获取某一行的数据
    # col1 = sheet1.col_values(0)  # 通过下标获取某一列的数据
    # print('某行的数据:', row1)
    # print('某列的数据:', col1)
    #
    # # 获取sheet中某个单元格的数据
    # cell_A3 = sheet1.cell(2, 0).value  # 第三行第一列
    # cell_B2 = sheet1.cell(1, 1).value  # 第二行第二列
    # cell_C3 = sheet1.cell(2, 2).value  # 第三行第三列
    # print('第一列第三行:', cell_A3)
    # print('第二行第二列:', cell_B2)
    # print('第三行第三列:', cell_C3)
    #
    # # 获取单元格数据类型
    # A3_ctype = sheet1.cell(2, 0).ctype  # 数字类型
    # B2_ctype = sheet1.cell(1, 1).ctype  # str类型
    # C3_ctype = sheet1.cell(2, 2).ctype  # data类型
    # print('数字类型:', A3_ctype)
    # print('str类型:', B2_ctype)
    # print('data类型:', C3_ctype)
    return data

你可能感兴趣的:(笔记,python3,csv,xlsxwriter)