• 【Python】Excel-3


      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')
  • 相关阅读:
    AcWing 286. 选课
    背包问题极小值空间至少是j
    Logo在线公式编辑转图片
    AcWing 1055. 股票买卖 II
    枚举一个集合的所有有效子集
    CF580D Kefa and Dishes [洛谷]
    AcWing 1282. 搜索关键词
    背包问题最大值空间恰好是j
    多叉树转二叉树有依赖的背包问题解法
    Thinkpad T14重装Win10后不见无线网络问题的解决
  • 原文地址:https://www.cnblogs.com/jingsheng99/p/8904089.html
Copyright © 2020-2023  润新知