zoukankan      html  css  js  c++  java
  • ecxel表的读取

     一、 安装xlrd、xlwt、xlutils

    xlrd:是python从excel读数据的第三方控件;
    xlwt:是python从excel写数据的第三方控件;
    xlutils:是python使用xlrd、xlwt的工具箱。若安装不成功,可能原因是需要安装setuptools。

    第一种方法()

    pip install xlrd

    pip install xlwt

    pip install xlutils

    二、数据代码应用:

    import xlrd
    from xlutils.copy import copy


    class OperateExcel(object):
    def __init__(self, file_name=None, sheet_id=None):
    """
    :param file_name: excel文件的具体路径名称
    :param sheet_id: 要操作的第几 sheet 页
    """
    if file_name:
    self.file_name = file_name
    else:
    self.file_name = 'C:\Users\Administrator\Desktop\aa\s1.xls'

    if sheet_id:
    self.sheet_id = sheet_id
    else:
    self.sheet_id = 0

    self.sheet_table = self.get_sheet()

    # 获取 sheet 页操作对象
    def get_sheet(self):
    data = xlrd.open_workbook(self.file_name)
    sheet_table = data.sheets()[self.sheet_id]
    return sheet_table

    # 获取该 sheet 页的行数和列数,拿到的是一个元组
    def get_sheet_nrows_ncols(self):
    return self.sheet_table.nrows, self.sheet_table.ncols

    # 获取该 sheet 页的行数
    def get_sheet_nrows(self):
    return self.sheet_table.nrows

    # 获取该 sheet 页的列数
    def get_sheet_ncols(self):
    return self.sheet_table.ncols

    # 获取具体单元格的数据
    def get_sheet_cell(self, row, col):
    """
    :param row: 单元格的行值
    :param col: 单元格的列值
    :return: cell_data
    """
    cell_data = self.sheet_table.cell_value(row, col)
    return cell_data

    # 写入数据到 excel 中
    def write_to_excel(self, row, col, value):
    # 同样的先打开 excel 操作句柄
    data = xlrd.open_workbook(self.file_name)
    copy_data = copy(data)
    # 选择写入的 sheet 页
    copy_data_sheet = copy_data.get_sheet(0)
    # 写入数据:列如:17,7"写入的数据",17是行坐标18,7是列坐标8
    copy_data_sheet.write(row, col, value)
    # 保存数据
    copy_data.save(self.file_name)


    if __name__ == "__main__":
    oe = OperateExcel()
    print("获取 excel 表的行数和列表,返回元组形式:", oe.get_sheet_nrows_ncols())
    print("获取 excel 表的行数:", oe.get_sheet_nrows())
    print("获取 excel 表的列数:", oe.get_sheet_ncols())
    print("获取单元格(1, 1)的值:", oe.get_sheet_cell(1, 1))
    print("获取单元格(1, 2)的值:", oe.get_sheet_cell(1, 2))
    print("获取单元格(2, 2)的值:", oe.get_sheet_cell(2, 2))
    oe.write_to_excel(17, 7, '写入的数据')
    没有不会的技术,只有你想不到的技术。。。。。。。。。。。。。。
  • 相关阅读:
    leetcode 673. 最长递增子序列的个数 java
    leetcode 148. 排序链表 java
    leetcode 98. 验证二叉搜索树 java
    leetcode 29. 两数相除 java
    leetcode 234. 回文链表 java
    Valid Palindrome LeetCode Java
    Single Number II LeetCode Java
    Single Number LeetCode java
    Search in Rotated Sorted Array II LeetCode Java
    Search in Rotated Sorted Array leetcode java
  • 原文地址:https://www.cnblogs.com/zenghongfei/p/12170218.html
Copyright © 2011-2022 走看看