python用xlrd写入数据到excel里面_通过python中xlrd读取excel表格(xlwt写入excel),xlsxwriter写入excel表格并绘制图形...

1 importxlsxwriter2

3 #写入excel文件

4 def write_excel(url): #传入excel存储路径

5 #将要插入excel并用作绘图的数据

6 data_all = {'错误汇总': {7 'error_summary_header': ['账号', '姓名', '投资评级错误', '评级变化错误', '股票代码错误', '股票名称错误', '目标价错误', '目标价高错误', '净利润错误',8 '归母净利润错误', '年份错误', '分析师名字错误', '邮箱错误', '证券职业编码错误', '电话错误', '记录错误数', '错误数(人工)',9 '错误数(研报本身)', '错误数(抽查)', '总记录数', '错误率', '研报总数'],10 'editor_Intern1': ['editor_Intern1', 'editor_Intern1', 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 912, '0.22%',11 223],12 'editor_Intern10': ['editor_Intern10', 'editor_Intern10', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 837, '0.12%',13 232],14 'editor_Intern11': ['editor_Intern11', 'editor_Intern11', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 644, '0.16%',15 173],16 'editor_Intern12': ['editor_Intern12', 'editor_Intern12', 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 439, '0.23%',17 99],18 'editor_Intern2': ['editor_Intern2', 'editor_Intern2', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1132, '0.0%',19 265],20 'editor_Intern3': ['editor_Intern3', 'editor_Intern3', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 852, '0.0%', 280],21 'editor_Intern4': ['editor_Intern4', 'editor_Intern4', 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1002, '0.7%',22 297],23 'editor_Intern5': ['editor_Intern5', 'editor_Intern5', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, '0.0%',24 213],25 'editor_Intern6': ['editor_Intern6', 'editor_Intern6', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 778, '0.0%',26 200],27 'editor_Intern8': ['editor_Intern8', 'editor_Intern8', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],28 'editor_Intern9': ['editor_Intern9', 'editor_Intern9', 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 762, '0.66%', -3],29 'editor_Intern13': ['editor_Intern13', 'editor_Intern13', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, '0.0%',30 180],31 'editor_Intern14': ['editor_Intern14', 'editor_Intern14', 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 2, 0, 0, 10, 0, 0, 0, 467, '2.14%',32 102],33 'Total': ['Total', '合计', 0, 0, 0, 0, 0, 0, 12, 3, 9, 0, 4, 0, 0, 28, 0, 0, 0, 10102, '0.28%', 2595]}}34 #数据表头

35 error_detail_header = ['研报_id', '账号', '投资评级错误', '评级变化错误', '股票代码错误', '股票名称错误', '目标价错误', '目标价高错误', '净利润错误', '归母净利润错误',36 '年份错误', '分析师名字错误', '邮箱错误', '证券职业编码错误', '电话错误']37 #创建excel

38 myWorkbook =xlsxwriter.Workbook(url)39 #自定义样式

40 bold =myWorkbook.add_format({41 'font_size': 10, #字体大小

42 'bold': True, #是否粗体

43 'bg_color': '#101010', #表格背景颜色

44 'font_color': '#FEFEFE', #字体颜色

45 'align': 'center', #居中对齐

46 'top': 2, #上边框

47 'left': 2, #左边框

48 'right': 2, #右边框

49 'bottom': 2 #底边框

50 })51 for k, v indata_all.items():52 if k == '错误明细':53 mySheet1 = myWorkbook.add_worksheet(k) #创建“错误明细”sheet

54 for index, header inenumerate(error_detail_header):55 mySheet1.write(0, index, header, bold)56 for i, val inenumerate(v):57 i += 1

58 for j, value inenumerate(val):59 mySheet1.write(i, j, value, bold) #向第i行第j列插入数据,并使用bold定义的样式

60 if k == '错误汇总':61 mySheet2 =myWorkbook.add_worksheet(k)62 i =063 for summary_value inv.values():64 for sum_index, sum_value inenumerate(summary_value):65 mySheet2.write(i, sum_index, sum_value, bold)66 i += 1

67

68 '''绘制错误数柱状图'''

69 #创建一个柱状图(column chart)

70 chart_col = myWorkbook.add_chart({'type': 'column'})71

72 #图表下方显示数据表格

73 chart_col.set_table({74 'show_keys': True75 })76

77 #配置数据(用了另一种语法)

78 chart_col.add_series({79 'name': '=错误汇总!$P$1',80 'categories': '=错误汇总!$B$2:$B$14',81 'values': '=错误汇总!$P$2:$P$14',82 'line': {'color': '#C0504D'},83 'fill': {'color': '#C0504D'},84 'data_labels': {'value': True}, #在图表上显示对应的数据

85 })86

87 ## 配置数据

88 #chart_col.add_series({

89 #'name': ['错误汇总', 0, 2],

90 #'categories': ['错误汇总', 1, 0, 6, 0],

91 #'values': ['错误汇总', 1, 2, 6, 2],

92 #'line': {'color': 'red'},

93 #})

94

95 #设置图表的title 和 x,y轴信息

96 chart_col.set_title({'name': '记录错误数'})97 chart_col.set_x_axis({'name': '员工'})98 chart_col.set_y_axis({'name': '错误数'})99

100 #设置图表的风格

101 chart_col.set_style(10)102

103 #把图表插入到worksheet以及偏移

104 mySheet2.insert_chart('A21', chart_col, {105 'x_offset': 0,106 'y_offset': 0,107 'x_scale': 1.5,108 'y_scale': 1.5,109 }) #第一个参数为图表插入的起始位置, x_offset、y_offset为偏移量, x_scale、y_scale为缩放比率

110

111 '''绘制错误率折线图'''

112 chart_col1 = myWorkbook.add_chart({'type': 'line'})113 #配置数据(用了另一种语法)

114 chart_col1.add_series({115 'name': '=错误汇总!$U$1',116 'categories': '=错误汇总!$B$2:$B$14',117 'values': '=错误汇总!$U$2:$U$14',118 'line': {'color': '#C0504D'},119 'data_labels': {'value': True},120 })121

122 ## 配置数据

123 #chart_col1.add_series({

124 #'name': ['错误汇总', 0, 2],

125 #'categories': ['错误汇总', 1, 0, 6, 0],

126 #'values': ['错误汇总', 1, 2, 6, 2],

127 #'line': {'color': 'red'},

128 #})

129

130 #设置图表的title 和 x,y轴信息

131 chart_col1.set_title({'name': '错误率'})132 chart_col1.set_x_axis({'name': '员工'})133 chart_col1.set_y_axis({'name': '错误数'})134

135 #设置图表的风格

136 chart_col1.set_style(1)137

138 #将柱状图合并入折线图中

139 #chart_col1.combine(chart_col)

140

141 mySheet2.insert_chart('N21', chart_col1, {142 'x_offset': 0,143 'y_offset': 0,144 'x_scale': 1.5,145 'y_scale': 1.5,146 }) #第一个参数为图表插入的起始位置, x_offset、y_offset为偏移量, x_scale、y_scale为缩放比率

147

148 '''绘制错误种类饼图'''

149 #创建一个柱状图(column chart)

150 chart_col2 = myWorkbook.add_chart({'type': 'pie'})151 #配置数据(用了另一种语法)

152 chart_col2.add_series({153 'categories': '=错误汇总!$C$1:$O$1',154 'values': '=错误汇总!$C$15:$O$15',155 'data_labels': {'value': True},156 'points': [157 {'fill': {'color': '#4590A7'}},158 {'fill': {'color': '#AA4643'}},159 {'fill': {'color': '#89A54E'}},160 {'fill': {'color': '#71588F'}},161 {'fill': {'color': '#4198AF'}},162 {'fill': {'color': '#DB843D'}},163 {'fill': {'color': '#93A9CF'}},164 {'fill': {'color': '#D19392'}},165 {'fill': {'color': '#B9CD96'}},166 {'fill': {'color': '#4590A7'}},167 {'fill': {'color': '#AA4643'}},168 {'fill': {'color': '#89A54E'}},169 {'fill': {'color': '#71588F'}},170 {'fill': {'color': '#4198AF'}},171 {'fill': {'color': '#DB843D'}},172 {'fill': {'color': '#93A9CF'}},173 {'fill': {'color': '#D19392'}},174 {'fill': {'color': '#B9CD96'}},175 ] #饼状图会使用到的色号

176 })177

178 ## 配置数据

179 #chart_col.add_series({

180 #'name': ['错误汇总', 0, 2],

181 #'categories': ['错误汇总', 1, 0, 6, 0],

182 #'values': ['错误汇总', 1, 2, 6, 2],

183 #'line': {'color': 'red'},

184 #})

185

186 #设置图表的title

187 chart_col2.set_title({'name': '错误种类占比'})188

189 #设置图表的风格

190 chart_col2.set_style(1)191

192 #把图表插入到worksheet以及偏移

193 mySheet2.insert_chart('H45', chart_col2, {194 'x_offset': 0,195 'y_offset': 0,196 'x_scale': 1.5,197 'y_scale': 1.5,198 }) #第一个参数为图表插入的起始位置, x_offset、y_offset为偏移量, x_scale、y_scale为缩放比率

199

200 myWorkbook.close()201

202 if __name__ == '__main__':203 write_excel('./datasource/test_query_bak.xls')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值