美文网首页
2018-07-31Python (10)

2018-07-31Python (10)

作者: 棕色试剂瓶 | 来源:发表于2018-07-31 08:20 被阅读0次

python基础语法(10)

读写数据——Excel

  1. 安装openpyxl

     pip install openppyxl  
    
  2. 打开文件
    导入模块:

     from openpyxl import load_workbook   
    
  3. 写入数据

    代码示例:

     # 写入数据
     #--------------------类似于使用excel创建表格----------------------
             # 1. 打开一个空白的工作表
             # 2. 在工作表中新建一个工作簿
             # 3. 将数据写入工作簿
             # 4. 保存工作表文件并命名
     #--------------------------------------------------------------
     from openpyxl import Workbook
     try:
         # 创建工作表
         wb = Workbook()
         # 新建工作表,index用来指定其在工作簿中的位置
         sheet = wb.create_sheet('Data',index=1) # index = 0 是第一个工作表
     
         # 删除某个工作表
         # wb.remove(wb)
         # del wb[sheet]
         # row = [1,2,3,4,5]
         # sheet.append(row)
     
         # 定义数据
         rows = [
             ["id","name","mark"],
             ["001","daming",90],
             ["002","lingling",98]
         ]
     
         # 将定义好的数据遍历逐条加入工作簿中
         for row in rows:
             sheet.append(row)
         # 将工作表保存,创建名为“飞天小分队”的xlsx文件
         wb.save(r"飞天小分队.xlsx")
     except Exception as ex:
         print(ex)    
    

    如果不执行save方法,就不会创建.xlsx文件;文件会默认创建在此代码所在的相同目录下。

  4. 读取数据 (通过安装 xlrd模块实现)

    • 导入模块

        import xlrd
      
    • 打开Excel文件读取数据

        data = xlrd.open_workbook('data.xlsx')  
      
    • 获取动作表

        table = data.sheets()[1]    # 通过索引顺序获取
        table = data.sheet_by_index(1)  # 通过索引顺序获取
        table = data.sheet_by_name(u"Data") #通过名称获取         
      
    • 获取整行和整列的值(数组)

        table.row_values(1) # 整行
        table.col_values(1) # 整列  
      
    • 获取行数和列数

        nrows = table.nrows # 获取行数
        ncols = table.ncols # 获取列数
      
    • 循环行列表数据

        for i in range(nrows):
            print(table.row_values(i))
      
    • 单元格

        cell_A1 = table.cell(0,0).value
        cell_C4 = table.cell(2,2).value
      
    • 使用行列索引

        cell_A1 = table.row(0)[2].value
        cell_A2 = table.col(2)[1].value
      

简单的写入

row = 0 # 行数
col = 0 # 列数
# 类型 0 empty;1 string; 2 number; 3 date; 4 boolean; 5 error;
ctype = 1 # 单元格类型
value = 'hello' # 值
xf = 0 # 扩展的格式化(没搞懂是什么意思)

# table.put_cell(row, col, ctype, value, xf)
table.put_cell(1, 1, 1, "hello",0)
table.cell(1,1) # 单元格的值
table.cell(0,0).value # 单元格的值

print(table.cell(1,1).value)            

相关文章

网友评论

      本文标题:2018-07-31Python (10)

      本文链接:https://www.haomeiwen.com/subject/zkkcvftx.html