1 1、 导入Excel模块:from openpyxl import Workbook 2 3 2、 创建Excel对象:wb=Workbook() 4 5 3、 创建sheet:ws1=wb.create_sheet(“name”) 6 7 4、 指定位置创建某个sheet:ws1=create_sheet(“name”,0) 8 9 5、 修改sheet名字:ws1.title=”new name”;中文名字ws1.title=u”new name” 10 11 6、 设定sheet背景属性ws1.sheet_properties_tabColor=”108888” 12 13 7、 获取某个sheet对象:wb[“sheet name”] 14 15 8、 获取全部sheet的名字:wb.sheetnames或wb.get_sheet_names() 返回的是一个list 16 17 9、 复制一个sheet:wb.copy_worksheet(wb[“sheet name”]) 18 19 10、 给固定单元格赋值: 20 21 (1) ws1[“A1”]=3.1415 22 23 (2) ws1[“B2”]=”王某某” 24 25 (3) ws1.cell(row=4,column=2,value=10) 26 27 11、 获取某个单元格的值 28 29 (1) ws1[“A1”].value 30 31 (2) ws1.cell(row=4,column=2,value=10).value 32 33 12、 获取某一列的值 34 35 (1) ws1[“A”];ws1[“A:C”]为获取A到C列的值 36 37 (2) for cell in ws1[“A”]:print cell.value 38 39 13、 获取某几行的值 40 41 (1) ws1[1:3] 42 43 (2) for row in ws[1:3]:print row.value 44 45 14、 获取某几行几列的值 46 47 for row in ws1.iter_rows(min_row=1,min_col=1,max_col=3,max_row=3): 48 49 for cell in row: 50 51 print cell.value 52 53 15、 获取所有行:ws1.rows 54 55 16、 获取所有列ws1.columns 56 57 17、 保存Excel:wb.save(“e:\test4\sample.xlsx”) 58 59 18、 打开Excel文件: 60 61 import xlrd 62 63 data=xlrd.open_workbook(“e:\test4\sample.xlsx”) 64 65 19、 写入excel文件内容如果是中文不需要加”u”,创建sheet名称时如果是中文需要加”u” 66 67 #练习:创建一个excel,第一行是1,2,3,第二行是4,5,6,第三行是7,8,9,保存在磁盘上,然后并且把每一个值读出来,并输出 68 69 from openpyxl import Workbook 70 71 wb=Workbook() 72 73 ws1=wb.create_sheet(u"某某") 74 75 i=1 76 77 for m in range(1,4): 78 79 for n in range(1,4): 80 81 ws1.cell(row=m,column=n,value=i) 82 83 i+=1 84 85 for m in range(1,4): 86 87 for n in range(1,4): 88 89 print ws1.cell(row=m,column=n).value 90 91 92 93 for column in ws1["A:C"]: 94 95 for cell in column: 96 97 print cell.value 98 99 wb.save("e:\test4\s2.xlsx") 100 101 #练习:显示小数或百分数 102 103 from openpyxl import Workbook 104 105 from openpyxl import load_workbook 106 107 wb = load_workbook('e:\test4\s2.xlsx') 108 109 wb.guess_types = True 110 111 #这个的意思是只获取第一个sheet 112 113 ws=wb.active 114 115 ws["D1"]="12%" 116 117 print ws["D1"].value 118 119 wb.save("e:\test4\s2.xlsx") 120 121 #练习: 122 123 from openpyxl import Workbook 124 125 from openpyxl import load_workbook 126 127 wb = load_workbook('e:\test4\s2.xlsx') 128 129 ws=wb.active 130 131 rows=[] 132 133 for row in ws.iter_rows(): 134 135 rows.append(row) 136 137 138 139 print rows #所有行,存的是每一行的对象 140 141 print rows[0] #获取第一行 142 143 print rows[0][0] #获取第一行第一列的单元格对象 144 145 print rows[0][0].value #获取第一行第一列的单元格对象的值 146 147 print rows[len(rows)-1] #获取最后行 148 149 print rows[len(rows)-1][len(rows[0])-1] #获取第后一行和最后一列的单元格对象 150 151 print rows[len(rows)-1][len(rows[0])-1].value #获取第后一行和最后一列的单元格对象的值 152 153 154 155 #练习: 156 157 from openpyxl import Workbook 158 159 from openpyxl import load_workbook 160 161 wb = load_workbook('e:\test4\s2.xlsx') 162 163 ws=wb.active 164 165 cols=[] 166 167 for col in ws.iter_cols(): 168 169 cols.append(col) 170 171 172 173 print cols #所有列 174 175 print cols[0] #获取第一列 176 177 print cols[0][0] #获取第一列的第一行的单元格对象 178 179 print cols[0][0].value #获取第一列的第一行的值 180 181 182 183 print "*"*30 184 185 print cols[len(cols)-1] #获取最后一列 186 187 print cols[len(cols)-1][len(cols[0])-1] #获取最后一列的最后一行的单元格对象 188 189 print cols[len(cols)-1][len(cols[0])-1].value #获取最后一列的最后一行的单元格对象的 190 191 192 193 #练习:判断类型 194 195 from openpyxl import Workbook 196 197 from openpyxl import load_workbook 198 199 import datetime 200 201 wb = load_workbook('e:\test4\s2.xlsx') 202 203 ws=wb.active 204 205 wb.guess_types = True 206 207 208 209 ws["A1"]=datetime.datetime(2010, 7, 21) 210 211 print ws["A1"].number_format 212 213 214 215 ws["A2"]="12%" 216 217 print ws["A2"].number_format 218 219 220 221 ws["A3"]= 1.1 222 223 print ws["A4"].number_format 224 225 226 227 ws["A4"]= "中国" 228 229 print ws["A5"].number_format 230 231 # Save the file 232 233 wb.save('e:\test4\s2.xlsx') 234 235 236 237 238 239 #练习:Excel中用公式 240 241 from openpyxl import Workbook 242 243 from openpyxl import load_workbook 244 245 wb = load_workbook('e:\test4\s2.xlsx') 246 247 ws1=wb.active 248 249 ws1["A1"]=1 250 251 ws1["A2"]=2 252 253 ws1["A3"]=3 254 255 256 257 ws1["A4"] = "=SUM(1, 1)" 258 259 ws1["A5"] = "=SUM(A1:A3)" #这里打印的是Excel的公式,而不是公式计算后的结果 260 261 262 263 print ws1["A4"].value #打印的是公式内容,不是公式计算后的值,程序无法取到计算后的值 264 265 print ws1["A5"].value #打印的是公式内容,不是公式计算后的值,程序无法取到计算后的值 266 267 # Save the file 268 269 wb.save('e:\test4\s2.xlsx') 270 271 272 273 #练习:合并单元格 274 275 from openpyxl import Workbook 276 277 from openpyxl import load_workbook 278 279 280 281 wb = load_workbook('e:\test4\s2.xlsx') 282 283 ws1=wb.active 284 285 from openpyxl.workbook import Workbook 286 287 wb = Workbook() 288 289 ws = wb.active 290 291 ws.merge_cells('A2:D2') #合并单元格,值不保留 292 293 #ws.unmerge_cells('A2:D2') #不合并单元格 294 295 # or equivalently 296 297 ws.merge_cells(start_row=2,start_column=1,end_row=2,end_column=4) 298 299 #ws.unmerge_cells(start_row=2,start_column=1,end_row=2,end_column=4) 300 301 # Save the file 302 303 wb.save('e:\test4\s2.xlsx') 304 305 306 307 #练习:隐藏列 308 309 from openpyxl import load_workbook 310 311 from openpyxl.drawing.image import Image 312 313 314 315 wb = load_workbook('e:\test4\s2.xlsx') 316 317 ws1=wb.active 318 319 ws1.column_dimensions.group('A', 'D', hidden=True) #隐藏a到d列范围内的列 320 321 # Save the file 322 323 wb.save('e:\test4\s2.xlsx') 324 325 326 327 #练习:生成柱状图 328 329 from openpyxl import load_workbook 330 331 from openpyxl import Workbook 332 333 from openpyxl.chart import BarChart, Reference, Series 334 335 336 337 wb = load_workbook('e:\test4\s2.xlsx') 338 339 ws1=wb.active 340 341 wb = Workbook() 342 343 ws = wb.active 344 345 for i in range(10): 346 347 ws.append([i]) 348 349 350 351 values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10) 352 353 chart = BarChart() 354 355 chart.add_data(values) 356 357 ws.add_chart(chart, "E15") 358 359 # Save the file 360 361 wb.save('e:\test4\s2.xlsx')