Python酷库之旅-比翼双飞情侣库(15)

目录

一、xlrd库的由来

二、xlrd库优缺点

1、优点

1-1、支持多种Excel文件格式

1-2、高效性

1-3、开源性

1-4、简单易用

1-5、良好的兼容性

2、缺点

2-1、对.xlsx格式支持有限

2-2、功能相对单一

2-3、更新和维护频率低

2-4、依赖外部资源

三、xlrd库的版本说明

1、xlrd 1.2.0版本

2、xlrd 2.0.1版本

3、xlrd3(非官方名称)

四、如何学好xlrd库?

1、获取xlrd库的属性和方法

2、获取xlrd库的帮助信息

3、实战案例

3-144、判断工作表内是否有公式

3-145、判断某单元格区域是否为数组公式区域

3-146、判断工作表内是否有数组公式

3-147、判断单元格的计算公式是否引用了其他工作表数据

3-148、判断单元格的计算公式是否引用了其他工作簿数据

3-149、判断某单元格是否为合并单元格区域的一部分

3-150、获取单元格区域内的值

3-151、获取单元格内的前缀字符

3-152、判断单元格内的数字是否为文本字符

3-153、获取单元格的格式

3-154、获取单元格的字体(Font)对象

3-155、获取单元格的内部(Interior)对象

3-156、获取单元格的边框(Borders)对象

3-157、获取单元格边框线的状态

3-158、获取单元格的样式(Style)对象

3-159、获取单元格的条件格式

3-160、获取单元格的输入规则(有效性设置)

3-161、获取单元格的超链接

3-162、获取单元格的批注信息

3-163、获取单元格的大小(行高和列宽)

3-164、获取单元格的坐标

五、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

        在Excel中,通常所说的“情侣键”并非官方术语,而是对某些常用且经常成对出现的快捷键的一种形象化的称呼。其中,最为人熟知和广泛使用的“情侣键”是“Ctrl+C”和“Ctrl+V”。

1、Ctrl+C:这个快捷键的作用是“拷贝”或“复制”。当你在Excel中选中某个单元格、一行、一列或整个工作表的内容后,按下Ctrl+C键,这些内容就会被复制到计算机的剪贴板中,等待下一步的粘贴操作。
2、Ctrl+V:这个快捷键的作用是“粘贴”。在你按下Ctrl+C键将内容复制到剪贴板后,可以通过按下Ctrl+V键将这些内容粘贴到Excel中的另一个位置,这两个操作经常是连续进行的,因此Ctrl+C和Ctrl+V就像一对“情侣”,总是成对出现。

        除了这对常见的“情侣键”外,Excel中还有许多其他的快捷键可以帮助用户更高效地完成各种操作。然而,这些快捷键通常并没有像Ctrl+C和Ctrl+V那样形成特定的“情侣”关系。

        然而,今天我不再展开介绍“情侣键”,而是要重点推介Python中的“情侣库”,即xlrd和xlwt两个第三方库。

一、xlrd库的由来

        xlrd库是一种用于在Python中读取Excel文件的库,它的名称中的"xl"代表Excel,"rd"代表读取,其开发者是John Machin(注:库名字符拆分诠释,只是一种猜测)。

        xlrd最初是在2005年开始开发的,是基于Python的开源项目(下载:xlrd库官网下载)。

        由于Excel文件在数据处理和分析中的重要性,xlrd库填补了Python在处理Excel文件方面的空白,使得用户可以方便地在Python环境中读取Excel文件的内容,并进行进一步的数据操作和分析。

二、xlrd库

1、优点
1-1、支持多种Excel文件格式

        xlrd库支持多种Excel文件格式,包括`.xls`和`.xlsx`(在旧版本中),这使得无论数据存储在哪种格式的Excel文件中,用户都可以使用xlrd库来读取。


1-2、高效性

        xlrd库使用C语言编写,因此其性能非常高,即使面对非常大的Excel文件,xlrd也可以快速地读取其中的数据。


1-3、开源性

        xlrd是完全开源的,可以在GitHub等平台上找到其源代码,这使得任何人都可以根据自己的需求对其进行修改和扩展。


1-4、简单易用

        xlrd提供了简单直接的API来获取单元格数据、行列数等,使得从Excel文件中读取数据变得简单而高效。


1-5、良好的兼容性

        xlrd库适配多种Python版本,包括Python 2.7(不包括3.0-3.3)或Python 3.4及以上版本,这为用户提供了广泛的兼容性选择。

2、缺点
2-1、对.xlsx格式支持有限

        在xlrd 1.2.0之后的版本中(大约从2020年开始),xlrd库不再支持`.xlsx`文件格式,这限制了xlrd在新版Excel文件(主要是`.xlsx`格式)上的应用。


2-2、功能相对单一

        xlrd库主要专注于从Excel文件中读取数据,而不提供写入或修改Excel文件的功能,这使得在处理需要写入或修改Excel文件的任务时,用户需要结合其他库(如`openpyxl`或`xlwt`)使用。


2-3、更新和维护频率低

        由于xlrd库主要关注于读取Excel文件的功能,并且随着`.xlsx`格式的普及,其使用范围逐渐缩小,因此,xlrd库的更新和维护频率可能相对较低。


2-4、依赖外部资源

        在某些情况下,xlrd库可能需要依赖外部资源或库来完全发挥其功能,这可能会增加用户在使用xlrd库时的复杂性和不确定性。

        总之,xlrd库在读取Excel文件方面具有高效、开源和简单易用等优点,但在对`.xlsx`格式的支持、功能单一以及更新和维护频率等方面存在一些缺点,用户在选择使用xlrd库时需要根据自己的需求进行权衡和选择。

三、xlrd库的版本说明

        xlrd库适配的Python版本根据库的不同版本而有所不同。以下是针对几个主要版本的说明:

1、xlrd 1.2.0版本

1-1、适配Python>=2.7(不包括3.0-3.3)或Python>=3.4
1-2、该版本支持xlsx文件格式,并且是一个广泛使用的版本,因为它能够处理小到中等大小的Excel文件,并且具有较好的性能表现。

2、xlrd 2.0.1版本

2-1、适配Python>=2.7(不包括3.0-3.5)或Python>=3.6
2-2、该版本不再支持xlsx文件格式仅支持旧版的xls文件格式,因为在xlrd 2.0版本之后,xlrd移除了对xlsx格式的支持。

3、xlrd3(非官方名称)

        xlrd3是xlrd的开源扩展库,提供了对xlsx文件格式的支持,然而,请注意,xlrd3并不是xlrd的官方名称(下载:GitHub - Dragon2fly/xlrd3)。

四、如何学好xlrd库?

1、获取xlrd库的属性和方法

        用print()和dir()两个函数获取xlrd库所有属性和方法的列表

# ['Book', 'FILE_FORMAT_DESCRIPTIONS', 'FMLA_TYPE_ARRAY', 'FMLA_TYPE_CELL', 'FMLA_TYPE_COND_FMT', 'FMLA_TYPE_DATA_VAL',
# 'FMLA_TYPE_NAME', 'FMLA_TYPE_SHARED', 'Operand', 'PEEK_SIZE', 'Ref3D', 'XLDateError', 'XLRDError', 'XLS_SIGNATURE',
# 'XL_CELL_BLANK', 'XL_CELL_BOOLEAN', 'XL_CELL_DATE', 'XL_CELL_EMPTY', 'XL_CELL_ERROR', 'XL_CELL_NUMBER', 'XL_CELL_TEXT', 'ZIP_SIGNATURE', 
# '__VERSION__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', 
# '__spec__', '__version__', 
# 'biff_text_from_num', 'biffh', 'book', 'cellname', 'cellnameabs', 'colname', 'compdoc', 'count_records', 'decompile_formula', 
# 'dump', 'dump_formula', 'empty_cell', 'error_text_from_code', 'evaluate_name_formula', 'formatting', 'formula', 'info', 
# 'inspect_format', 'oBOOL', 'oERR', 'oNUM', 'oREF', 'oREL', 'oSTRG', 'oUNK', 'okind_dict', 'open_workbook', 'open_workbook_xls', 
# 'os', 'pprint', 'rangename3d', 'rangename3drel', 'sheet', 'sys', 'timemachine', 'xldate', 'xldate_as_datetime', 'xldate_as_tuple', 'zipfile']
2、获取xlrd库的帮助信息

        用help()函数获取xlrd库的帮助信息

Help on package xlrd:

NAME
    xlrd

DESCRIPTION
    # Copyright (c) 2005-2012 Stephen John Machin, Lingfo Pty Ltd
    # This module is part of the xlrd package, which is released under a
    # BSD-style licence.

PACKAGE CONTENTS
    biffh
    book
    compdoc
    formatting
    formula
    info
    sheet
    timemachine
    xldate

FUNCTIONS
    count_records(filename, outfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)
        For debugging and analysis: summarise the file's BIFF records.
        ie: produce a sorted file of ``(record_name, count)``.
        
        :param filename: The path to the file to be summarised.
        :param outfile: An open file, to which the summary is written.
    
    dump(filename, outfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, unnumbered=False)
        For debugging: dump an XLS file's BIFF records in char & hex.
        
        :param filename: The path to the file to be dumped.
        :param outfile: An open file, to which the dump is written.
        :param unnumbered: If true, omit offsets (for meaningful diffs).
    
    inspect_format(path=None, content=None)
        Inspect the content at the supplied path or the :class:`bytes` content provided
        and return the file's type as a :class:`str`, or ``None`` if it cannot
        be determined.
        
        :param path:
          A :class:`string <str>` path containing the content to inspect.
          ``~`` will be expanded.
        
        :param content:
          The :class:`bytes` content to inspect.
        
        :returns:
           A :class:`str`, or ``None`` if the format cannot be determined.
           The return value can always be looked up in :data:`FILE_FORMAT_DESCRIPTIONS`
           to return a human-readable description of the format found.
    
    open_workbook(filename=None, logfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, verbosity=0, use_mmap=True, file_contents=None, encoding_override=None, formatting_info=False, on_demand=False, ragged_rows=False, ignore_workbook_corruption=False)
        Open a spreadsheet file for data extraction.
        
        :param filename: The path to the spreadsheet file to be opened.
        
        :param logfile: An open file to which messages and diagnostics are written.
        
        :param verbosity: Increases the volume of trace material written to the
                          logfile.
        
        :param use_mmap:
        
          Whether to use the mmap module is determined heuristically.
          Use this arg to override the result.
        
          Current heuristic: mmap is used if it exists.
        
        :param file_contents:
        
          A string or an :class:`mmap.mmap` object or some other behave-alike
          object. If ``file_contents`` is supplied, ``filename`` will not be used,
          except (possibly) in messages.
        
        :param encoding_override:
        
          Used to overcome missing or bad codepage information
          in older-version files. See :doc:`unicode`.
        
        :param formatting_info:
        
          The default is ``False``, which saves memory.
          In this case, "Blank" cells, which are those with their own formatting
          information but no data, are treated as empty by ignoring the file's
          ``BLANK`` and ``MULBLANK`` records.
          This cuts off any bottom or right "margin" of rows of empty or blank
          cells.
          Only :meth:`~xlrd.sheet.Sheet.cell_value` and
          :meth:`~xlrd.sheet.Sheet.cell_type` are available.
        
          When ``True``, formatting information will be read from the spreadsheet
          file. This provides all cells, including empty and blank cells.
          Formatting information is available for each cell.
        
          Note that this will raise a NotImplementedError when used with an
          xlsx file.
        
        :param on_demand:
        
          Governs whether sheets are all loaded initially or when demanded
          by the caller. See :doc:`on_demand`.
        
        :param ragged_rows:
        
          The default of ``False`` means all rows are padded out with empty cells so
          that all rows have the same size as found in
          :attr:`~xlrd.sheet.Sheet.ncols`.
        
          ``True`` means that there are no empty cells at the ends of rows.
          This can result in substantial memory savings if rows are of widely
          varying sizes. See also the :meth:`~xlrd.sheet.Sheet.row_len` method.
        
        
        :param ignore_workbook_corruption:
        
          This option allows to read corrupted workbooks.
          When ``False`` you may face CompDocError: Workbook corruption.
          When ``True`` that exception will be ignored.
        
        :returns: An instance of the :class:`~xlrd.book.Book` class.

DATA
    FILE_FORMAT_DESCRIPTIONS = {'xls': 'Excel xls', 'xlsb': 'Excel 2007 xl...
    FMLA_TYPE_ARRAY = 4
    FMLA_TYPE_CELL = 1
    FMLA_TYPE_COND_FMT = 8
    FMLA_TYPE_DATA_VAL = 16
    FMLA_TYPE_NAME = 32
    FMLA_TYPE_SHARED = 2
    PEEK_SIZE = 8
    XLS_SIGNATURE = b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1'
    XL_CELL_BLANK = 6
    XL_CELL_BOOLEAN = 4
    XL_CELL_DATE = 3
    XL_CELL_EMPTY = 0
    XL_CELL_ERROR = 5
    XL_CELL_NUMBER = 2
    XL_CELL_TEXT = 1
    ZIP_SIGNATURE = b'PK\x03\x04'
    __VERSION__ = '2.0.1'
    biff_text_from_num = {0: '(not BIFF)', 20: '2.0', 21: '2.1', 30: '3', ...
    empty_cell = empty:''
    error_text_from_code = {0: '#NULL!', 7: '#DIV/0!', 15: '#VALUE!', 23: ...
    oBOOL = 3
    oERR = 4
    oNUM = 2
    oREF = -1
    oREL = -2
    oSTRG = 1
    oUNK = 0
    okind_dict = {-2: 'oREL', -1: 'oREF', 0: 'oUNK', 1: 'oSTRG', 2: 'oNUM'...

VERSION
    2.0.1

FILE
    e:\python_workspace\pythonproject\lib\site-packages\xlrd\__init__.py
3、实战案例
3-144、判断工作表内是否有公式
略,xlrd库不支持此功能,需要借助其他库实现
3-145、判断某单元格区域是否为数组公式区域
略,xlrd库不支持此功能,需要借助其他库实现
3-146、判断工作表内是否有数组公式
略,xlrd库不支持此功能,需要借助其他库实现
3-147、判断单元格的计算公式是否引用了其他工作表数据
略,xlrd库不支持此功能,需要借助其他库实现
3-148、判断单元格的计算公式是否引用了其他工作簿数据
略,xlrd库不支持此功能,需要借助其他库实现
3-149、判断某单元格是否为合并单元格区域的一部分
# 149、判断某单元格是否为合并单元格区域的一部分
import xlrd
# 打开 Excel 文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls')
# 选择工作表
sheet = workbook.sheet_by_index(0)  # 或者使用 sheet_by_name('test1')
# 获取合并单元格区域列表
merged_cells = sheet.merged_cells
# 假设我们要检查的单元格是 (row_num, col_num)
row_num = 1
col_num = 2
# 遍历所有合并单元格区域
for (start_row, start_col), (end_row, end_col) in merged_cells:
    # 检查单元格是否在合并区域内
    if start_row <= row_num <= end_row and start_col <= col_num <= end_col:
        print(f"单元格 ({row_num},{col_num}) 是合并单元格区域的一部分。")
        break
else:
    print(f"单元格 ({row_num},{col_num}) 不是合并单元格区域的一部分!")
3-150、获取单元格区域内的值
# 150、获取单元格区域内的值,并使其矩阵化
import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls')
# 选择要读取的工作表
sheet = workbook.sheet_by_name('test1')
# 定义要读取的单元格区域(例如A1到C3)
start_row = 0
end_row = 2
start_col = 0
end_col = 2
# 读取单元格区域的值
cell_values = []
for row in range(start_row, end_row + 1):
    row_cells = []
    for col in range(start_col, end_col + 1):
        cell_value = sheet.cell_value(row, col)
        row_cells.append(cell_value)
    cell_values.append(row_cells)
# 输出单元格区域的矩阵化值
for row in cell_values:
    print(row)
3-151、获取单元格内的前缀字符
略,xlrd库不支持此功能,需要借助其他库实现
3-152、判断单元格内的数字是否为文本字符
# 152、判断单元格内的数字是否为文本字符
import xlrd
# 打开 Excel 文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls')
# 选择工作表
sheet = workbook.sheet_by_index(0)  # 或使用 sheet_by_name('Sheet1')
# 假设我们要检查的单元格是 A1
cell_value = sheet.cell_value(0, 0)  # 行索引从 0 开始,列索引也从 0 开始
# 检查单元格值是否为字符串,并且只包含数字字符
if isinstance(cell_value, str) and cell_value.isdigit():
    print("单元格 A1 中的数字是作为文本字符读取的。")
else:
    print("单元格 A1 中的数字不是作为文本字符读取的!")
3-153、获取单元格的格式
# 153、获取单元格的格式
import xlrd
# 打开 Excel 文件,设置 formatting_info 参数为 True
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)
sheet = workbook.sheet_by_name('test1')
# 选择要获取格式的单元格
row_index = 0
col_index = 0
# 获取单元格对象
cell = sheet.cell(row_index, col_index)
# 获取格式索引
xf_index = cell.xf_index
# 获取格式对象
xf = workbook.xf_list[xf_index]
# 获取格式的属性
font = workbook.font_list[xf.font_index]
background = xf.background  # 直接从 xf 获取背景对象
alignment = xf.alignment  # 直接从 xf 获取对齐方式对象
# 打印格式信息
print(f"字体颜色: {font.colour_index}")
print(f"背景颜色: {background.pattern_colour_index}")
print(f"水平对齐方式: {alignment.hor_align}")
print(f"垂直对齐方式: {alignment.vert_align}")
3-154、获取单元格的字体(Font)对象
# 154、获取单元格的字体(Font)对象
import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)
# 选择工作表
sheet = workbook.sheet_by_index(0)
# 获取特定单元格的内容
cell = sheet.cell(0, 0)  # 获取第一个单元格 (A1)
# 获取单元格的格式索引
xf_index = cell.xf_index  # 获取格式索引
cell_xf = workbook.xf_list[xf_index]  # 从格式列表中获取格式对象
# 获取字体信息
font = workbook.font_list[cell_xf.font_index]
# 输出字体信息
print(f'字体名称: {font.name}')
print(f'字体大小: {font.height / 20}')  # 字体大小单位是twips,需除以20
print(f'是否加粗: {font.bold}')
print(f'是否斜体: {font.italic}')
print(f'字体颜色: #{font.colour_index:02X}')
# 输出:
# 字体名称: 微软雅黑
# 字体大小: 9.0
# 是否加粗: 0
# 是否斜体: 0
# 字体颜色: #08
3-155、获取单元格的内部(Interior)对象
# 155、获取单元格的内部(Interior)对象
import xlrd
# 打开现有的 Excel 文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)
# 获取第一个工作表
sheet = workbook.sheet_by_index(0)
# 获取单元格内容
cell_value = sheet.cell(0, 0).value
print('单元格内容:', cell_value)
# 获取单元格的字体颜色(仅限于 .xls 文件)
cell_xf_index = sheet.cell_xf_index(0, 0)
cell_xf = workbook.xf_list[cell_xf_index]
font_index = cell_xf.font_index
font = workbook.font_list[font_index]
print('字体颜色:', font.colour_index)
3-156、获取单元格的边框(Borders)对象
# 156、获取单元格的边框(Borders)对象
import xlrd
# 打开现有的 Excel 文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)
# 获取第一个工作表
sheet = workbook.sheet_by_index(0)
# 获取单元格的 XF 索引
cell_xf_index = sheet.cell_xf_index(0, 0)
cell_xf = workbook.xf_list[cell_xf_index]
# 获取单元格边框信息
border = cell_xf.border
print(f"左边框: {border.left_line_style}")
print(f"右边框: {border.right_line_style}")
print(f"上边框: {border.top_line_style}")
print(f"下边框: {border.bottom_line_style}")
3-157、获取单元格边框线的状态
# 157、获取单元格边框线的状态
import xlrd
# 打开现有的 Excel 文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)
# 获取第一个工作表
sheet = workbook.sheet_by_index(0)
# 获取单元格的 XF 索引
cell_xf_index = sheet.cell_xf_index(0, 0)
cell_xf = workbook.xf_list[cell_xf_index]
# 获取单元格边框信息
border = cell_xf.border
print(f"左边框: {border.left_line_style}")
print(f"右边框: {border.right_line_style}")
print(f"上边框: {border.top_line_style}")
print(f"下边框: {border.bottom_line_style}")
3-158、获取单元格的样式(Style)对象
# 158、获取单元格的样式(Style)对象
import xlrd
# 打开Excel工作簿
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)
# 获取第一个工作表
sheet = workbook.sheet_by_index(0)
# 获取指定单元格,例如第一行第一列的单元格
row, col = 0, 0
cell = sheet.cell(row, col)
# 获取该单元格的样式索引
xf_index = cell.xf_index
# 从工作簿中获取样式对象
cell_style = workbook.xf_list[xf_index]
# 获取单元格的字体样式
font = workbook.font_list[cell_style.font_index]
# 打印字体相关信息
print('Font Name:', font.name)
print('Bold:', font.bold)
print('Italic:', font.italic)
print('Underline:', font.underline_type)
# 获取单元格的背景填充信息
background = cell_style.background
# 打印背景颜色信息
print('Background Color:', background.pattern_colour_index)
print('Foreground Color:', background.pattern_colour_index)
3-159、获取单元格的条件格式
略,xlrd库不支持此功能,需要借助其他库实现
3-160、获取单元格的输入规则(有效性设置)
略,xlrd库不支持此功能,需要借助其他库实现
3-161、获取单元格的超链接
略,xlrd库不支持此功能,需要借助其他库实现
3-162、获取单元格的批注信息
# 162、获取单元格的批注信息
import xlrd
# 打开Excel工作簿
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)
# 获取第一个工作表
sheet = workbook.sheet_by_index(0)
# 获取批注信息
for row_idx in range(sheet.nrows):
    for col_idx in range(sheet.ncols):
        cell = sheet.cell(row_idx, col_idx)
        comment = sheet.cell_note_map.get((row_idx, col_idx))
        if comment:
            print(f"Cell ({row_idx}, {col_idx}) Comment: {comment.text}") # 输出:Cell (0, 0) Comment: Hello,Python!
3-163、获取单元格的大小(行高和列宽)
# 163、获取单元格的大小(行高和列宽)
import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)  # xlrd 仅支持 .xls 文件格式
# 选择工作表
sheet = workbook.sheet_by_index(0)
# 获取所有列宽
column_widths = sheet.colinfo_map
for col_index, col_info in column_widths.items():
    print(f"列 {col_index} 的宽度: {col_info.width / 256}")
# 获取所有行高
row_heights = sheet.rowinfo_map
for row_index, row_info in row_heights.items():
    print(f"行 {row_index} 的高度: {row_info.height / 20}")
3-164、获取单元格的坐标
# 164、获取单元格的坐标
import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook(r'E:\360Downloads\test.xls', formatting_info=True)  # xlrd 仅支持 .xls 文件格式
# 选择工作表
sheet = workbook.sheet_by_index(0)
# 获取工作表的行数和列数
num_rows = sheet.nrows
num_cols = sheet.ncols
# 遍历每个单元格并打印其坐标和内容
for row_idx in range(num_rows):
    for col_idx in range(num_cols):
        cell_value = sheet.cell_value(row_idx, col_idx)
        print(f"单元格({row_idx}, {col_idx})的内容是: {cell_value}")

五、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/722473.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源新纪元:ChatTTS——引领对话式文本转语音的新潮流

✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点赞、关注、收藏、评论&#xff0c;是对我最大…

帕金森病患者应对腿部无力的方法

帕金森病是一种慢性神经系统退化性疾病&#xff0c;主要影响运动系统&#xff0c;导致运动功能障碍。患者常见的症状包括肌肉僵硬、运动迟缓、静止性震颤和姿势不稳。这些症状可能会导致患者在行走时感到腿软无力&#xff0c;尤其是在起步或转弯时更为明显。 帕金森病患者在日常…

Linux 图形化编程GTK3.0 快速入门之布局

GTK3.0 布局之水平布局 核心语法&#xff1a; 水平布局容器&#xff1a; 水平布局容器的创建&#xff1a; GtkWidget *gtk_hbox_new( gboolean homogeneous, gint spacing ); homogeneous&#xff1a;容器内控件是否大小一致( gboolean 取值为TRUE 或 FALSE ) spacing&#…

C++语法01 基本框架

目录 什么是 C &#xff1f; 新建源程序 保存源程序 程序基本框架 #include using namespace std; int main() return 0; 编译 运行 什么是 C &#xff1f; C语言&#xff0c;是基本的程序设计语言之一【程序设计语言&#xff0c;简单的来说就是编写代码来操控计…

【深度学习驱动流体力学】OpenFOAM框架剖析

目录 1. applications 目录solvers&#xff1a;存放各种求解器。mesh&#xff1a;网格生成相关工具。 2. src 目录3. tutorials 目录其他主要目录和文件参考 OpenFOAM 源码文件目录的框架如下,OpenFOAM 是一个开源的计算流体力学 (CFD) 软件包&#xff0c;其源码文件结构设计精…

Maven 插件列表详解

Maven 是一个强大的项目管理和构建工具&#xff0c;广泛应用于 Java 项目中。作为一款优秀的构建管理工具&#xff0c;Maven 不仅提供了标准化的项目结构和依赖管理&#xff0c;还通过其丰富的插件系统&#xff0c;极大地扩展了其功能和灵活性。无论是代码编译、测试、打包&…

小程序分页新写法

// pages/query/query.js import {request } from ../../utils/request; Page({/*** 页面的初始数据*/data: {tabClickIndex: ,page: 1,limit: 10,listData: []},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.getList()},/*** 生命周期函数--监听页面初次渲染完成*…

uniapp运行到模拟器(联想模拟器)

记录一下uniapp项目运行到联想模拟器的流程 先配置一下模拟器端口 填写对应的adb路径&#xff0c;也就是模拟器安装路径下的adb.exe的路径 然后打开模拟器的设置&#xff0c;搜索版本找到版本号&#xff0c;多次点击打开开发者模式 进入开发者选项&#xff0c;打开USB调试 …

QT 中QcomboBox控件的详细用法

在Qt中&#xff0c;QComboBox 是一个用于选择下拉列表中的项目的控件。它继承自 QWidget 并提供了许多成员函数来操作和管理这个下拉列表。以下是一些常用的 QComboBox 成员函数及其基本用法&#xff1a; 构造函数 QComboBox(QWidget *parent nullptr): 创建一个新的 QCombo…

职业探索-性能测试01-性能工程师成长路径-性能测试的核心概念-性能测试的全周期概览

职业探索-性能测试01-性能工程师成长路径-性能测试的核心概念-性能测试的全周期概览 参考来源 极客时间专栏&#xff1a;高楼的性能测试实战30讲 课程链接&#xff1a;https://time.geekbang.org/column/intro/100042501 性能测试分析的能力阶梯视图 性能工程师 真正的性能…

FuTalk设计周刊-Vol.034

&#x1f525;AI漫谈 热点捕手 1、反转反转再反转&#xff01;OpenAI“内斗”风波始末 故事还远远没有结束&#xff0c;一场“宫斗”解决不了商业世界影响下科技发展的路线之争&#xff0c;或许未来还将有很多“选择”将困扰这家年轻的企业&#xff0c;这是AI领域发展下必将经…

【论文阅读】-- 时间空间化:用于深度分类器训练的可扩展且可靠的时间旅行可视化

Temporality Spatialization: A Scalable and Faithful Time-Travelling Visualization for Deep Classifier Training 摘要1 引言2 动机3 问题定义4 方法论4.1 时空复合体4.2 复数约简 5 实验6 相关工作7 结论参考文献 摘要 时间旅行可视化回答了深度分类器的预测是如何在训练…

【单片机毕业设计选题24015】-基于物联网的家用智能充电桩计费系统设计

系统功能: 采用STM32最小系统板控制 1. 通过IM1281B电能计量模块读取系统电压电流功率电能等信息 2. 通过ESP8266WiFi模块连接阿里云 3. 使用RFID模块刷卡 4. 继电器模块控制充电 5. 12864OLED模块显示系统信息 6. 开启充电但检测不到系统电压时蜂鸣器模块报警。 主要功…

delphi 开发app

好的工具用起来就会顺手&#xff0c;很多Delphi从业者用惯了Delphi工具&#xff0c;在面对移动APP称王的时代似乎有力使不出。现在不用再担心JAVA语言的一些特性&#xff0c;太纠结了。我们直接用Delphi XE7开发吧。虽然Delphi XE2开始就支持移动开发了&#xff0c;但这中间的五…

ubuntu永久换镜像源详细方法

1.查看ubuntu的版本&#xff0c;不同的版本对应的不同的镜像源&#xff08;下面会讲到&#xff0c;先按步骤操作即可&#xff09; cat /etc/issue 2.先备份一个&#xff0c;防止更改错误 cp /etc/apt/sources.list /etc/apt/sources.list.backup 3.备份好之后删除原有的sour…

VUE 项目用 Docker+Nginx进行打包部署

一、Docker Docker 是一个容器化平台&#xff0c;允许你将应用程序及其依赖项打包在容器中。使用 Docker&#xff0c;你可以创建一个包含 Vue.js 应用程序的容器镜像&#xff0c;并在任何支持 Docker 的环境中运行该镜像。 二、Nginx Nginx 是一个高性能的 HTTP 服务器和反向…

能提醒我重要工作事项的软件是什么 工作提醒软件

在工作中&#xff0c;我们总是不可避免地需要处理各种琐碎而重要的事项。然而&#xff0c;人的记忆力毕竟有限&#xff0c;尤其是在忙碌和高压的工作环境下&#xff0c;遗忘似乎成了一个难以避免的问题。想象一下&#xff0c;你因为一个疏忽忘记了一个重要的会议&#xff0c;或…

UE4_材质_雨滴涟漪效果ripple effect_ben教程

学习笔记&#xff0c;不喜勿喷&#xff01;侵权立删&#xff0c;祝愿生活越来越好&#xff01; 雨水落下时会产生这些非常漂亮的同心环波纹&#xff0c;我们要做的第一件事是创建一个单个的圆环遮罩动画&#xff0c;我们希望环在开始的时候在中心很小&#xff0c;然后放大&…

【漏洞复现】海康威视 综合安防管理平台软件 center_api_files 任意文件上传漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

AI大模型的战场:通用大模型VS垂直大模型,谁会赢?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…