1. 程式人生 > >【Python】Excel-3

【Python】Excel-3

中文名字 names IT 指定位置 xlsx clas arch 公式 bar

  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)

【Python】Excel-3