写入Excel中后有显示第一列客户款号总库存这些,开始写在第12行第一列开始写入,一行写入5个,然后再隔12行,再写入下边的数据,图片需要对应客户款号在Excel写入图片,类似下面的格式
import xlsxwriter import os #以空字符填充缺失值,不然写入数据会报错 data.fillna('',inplace=True) #创建一个新Excel文件并添加一个工作表。 workbook = xlsxwriter.Workbook('images.xlsx') worksheet = workbook.add_worksheet() # # 加宽第2列,,根据图片缩放大小进行调整。 worksheet.set_column('B:B', 20) worksheet.set_column('D:D', 20) worksheet.set_column('F:F', 20) worksheet.set_column('H:H', 20) ##写入数据和图片 for i in range(len(data)): for j in range(4): worksheet.write(i//5*16+j+12,i%5*2 ,['客户款号','总库存','零售数量','前一周'][j]) worksheet.write(i//5*16+j+12,i%5*2+1 ,data.iloc[i,0::].values[j]) #插入图片,insert_image(位置行,位置列,文件名,缩放比例) if data.iloc[i,0::].values[0]+'.jpg' not in os.listdir('.\img\\'): print(i,'找不到',data.iloc[i,0::].values[0]+'.jpg') else: worksheet.insert_image(i//5*16,i%5*2+1,'img/'+data.iloc[i,0::].values[0]+'.jpg',{'x_scale': 0.1, 'y_scale': 0.12}) print(i,'写入成功!') i+=1 workbook.close()
0 写入成功! 1 写入成功! 2 找不到 N038400237.jpg 3 找不到 N038400301.jpg 4 找不到 N039400310.jpg 5 找不到 N038400552.jpg 6 写入成功! 7 找不到 N038401101.jpg 8 找不到 N039400105.jpg 9 找不到 N039400219.jpg
效果如下:
当然还有合并单元格,设置单元格格式,以及处理图片的操作没写,有时间再来补充!
补充:python对excel表格处理需要导入相关的库:
读取:xlrd
写入:xlwt
修改(追加写入):xlutils
读取/写入:openpyxl
*如果用操作xls的方法去写入xlsx文件,会导致文件损坏无法打开;反之一样。
1、读取excel表格数据
import xlrd #从excle里读数据 import xlwt #创建新的表格写入数据 import xlutils #往已有表格中追加数据 class IOExcel(object): def __init__(self,file): self.file = file def get_sheet(self,sheetname): excelfile=xlrd.open_workbook(self.file) self.sheet = excelfile.sheet_by_name(sheetname) return self.sheet #获取第*行的数据 def get_rowData(self,row): cols = self.sheet.ncols #获取sheet页有多少列 Cells = [] for i in range(0,cols): Cells.append(self.sheet.cell(row,i).value) return Cells
2、创建表格写入数据
def write_excel(self,sheet_name, value): index = len(value) # 获取需要写入数据的行数 workbook = xlwt.Workbook() # 新建一个工作簿 sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一个表格 for i in range(0, index): for j in range(0, len(value[i])): sheet.write(i, j, value[i][j]) #向表格中写入数据(对应的行和列) workbook.save(self.file) # 保存工作簿
3、向已存在表格中追加数据
def write_excel_xls_append(self,value): index = len(value) # 获取需要写入数据的行数 workbook = xlrd.open_workbook(self.file) # 打开工作簿 sheets = workbook.sheet_names() # 获取工作簿中的所有表格 worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格 rows_old = worksheet.nrows # 获取表格中已存在的数据的行数 new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象 new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格 for i in range(0, index): for j in range(0, len(value[i])): new_worksheet.write(i+rows_old, j, value[i][j]) # 追加写入数据,注意是从i+rows_old行开始写入 new_workbook.save(self.file) # 保存工作簿
wb = openpyxl.Workbook() #创建一个新的excel we = wb.create_sheet('第二页',0) #修改sheet页的名字;设置插入sheet页的位置,默认在上一页后面( 初始创建的excel是只有一个默认sheet页的,所以设置位置的值大于1效果都一样,都是在默认sheet页的后面接着) # we.title = "你好" # 修改sheet页的名字 #操作单元格 we['A1']=123124 we['B2']='你好' print(we.cell(1,2,'123123').value) #设置cell的行号和列号和值,返回cell的值 wb.save('C:\\Users\\t_ful\\PycharmProjects\\test\\element\\t.xlsx') #保存表格
以上为个人经验,希望能给大家一个参考,也希望大家多多支持小牛知识库。如有错误或未考虑完全的地方,望不吝赐教。
本文向大家介绍python使用xlsxwriter实现有向无环图到Excel的转换,包括了python使用xlsxwriter实现有向无环图到Excel的转换的使用技巧和注意事项,需要的朋友参考一下 本程序将使用字典来构建有向无环图,然后遍历图将其转换为对应的Excel文件 最终结果如下: 代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我试图创建一个脚本,需要用户输入并输出一个excel文件,用户输入作为列标题。因此,如果用户输入:Col1,Col2,Col3...输出应该是一个excel文件,每个名称有3列,分别为:Col1,Col2,Col3。 代码: 假设我使用输入:Col1、Col2、Col3、Col4、Col5运行脚本,脚本的当前输出为:Col5 Col5 Col5 Col5 Col5 Col5 当前输出 我正在寻找的
本文向大家介绍Python matplotlib读取excel数据并用for循环画多个子图subplot操作,包括了Python matplotlib读取excel数据并用for循环画多个子图subplot操作的使用技巧和注意事项,需要的朋友参考一下 读取excel数据需要用到xlrd模块,在命令行运行下面命令进行安装 pip install xlrd 表格内容大致如下,有若干sheet,每个sh
本文向大家介绍循环队列-C ++中的插入和删除操作,包括了循环队列-C ++中的插入和删除操作的使用技巧和注意事项,需要的朋友参考一下 队列是包含元素集合的抽象数据结构。队列执行FIFO机制,即,首先插入的元素也将首先删除。 队列拐杖是一种线性数据结构。但是如果我们使用数组实现队列,可能会产生一些问题。有时通过使用一些连续的插入和删除操作,前后位置将发生变化。在那一刻,队列看起来没有空间向其中插入
本文向大家介绍python xlsxwriter创建excel图表的方法,包括了python xlsxwriter创建excel图表的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python xlsxwriter创建excel图表的具体代码,供大家参考,具体内容如 效果如下 参考文档: https://pypi.python.org/pypi/XlsxWriter pytho
问题内容: 我使用的 春天3,JPA + Hibernate的 一个应用。在该应用程序中,我有一个服务类方法,该方法用具有属性的Annotation进行注释。在该方法内部,我正在使用循环将数据(即实体类)插入表中。对于每个循环实体类,必须将其保存到数据库。但这没有发生。仅当循环执行完成并从方法退出时,才会执行提交。然后,它提交并立即保存所有内容。但是在这种情况下,在提交数据之前,我需要先读取数据。