python读取xlsx文件

python读取写入xlsx的文件的时候,遇到单元格有公式,写入的时候全是空白,请问一下该怎么办

在Python中读取和写入包含公式的Excel文件时,需要使用专门支持公式的库来处理这些单元格。一种常用的库是openpyxl,它可以读取、写入和处理Excel文件。

在读取Excel文件时,可以使用openpyxl库的load_workbook函数来加载文件,并使用active属性选择要操作的工作表。然后,通过访问单元格的value属性可以获取单元格的值,包括公式的结果。

例如,以下是一个读取包含公式的Excel文件的示例:

from openpyxl import load_workbook

# 加载Excel文件
wb = load_workbook("filename.xlsx")

# 选择要操作的工作表
ws = wb.active

# 获取单元格A1的值(包括公式的结果)
cell_value = ws['A1'].value
print(cell_value)

# 关闭Excel文件
wb.close()

在写入Excel文件时,需要注意将公式作为字符串写入单元格,并使用save方法保存文件。

以下是一个示例,演示如何写入带有公式的单元格:

from openpyxl import Workbook

# 创建一个新的工作簿
wb = Workbook()

# 选择要操作的工作表
ws = wb.active

# 设置公式和结果的单元格
ws['A1'] = '=SUM(B1:C1)'
ws['B1'] = 2
ws['C1'] = 3

# 保存Excel文件
wb.save("filename.xlsx")

# 关闭Excel文件
wb.close()

注意,在写入公式时,需要将公式字符串作为值赋给相应的单元格。在上述示例中,单元格A1的公式为SUM(B1:C1),将B1和C1的值相加作为结果。

通过使用openpyxl库读取和写入Excel文件时,可以正确地处理包含公式的单元格,并获取公式的结果。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7729090
  • 这篇博客也不错, 你可以看下python如何读取xlsx文件中的数据
  • 您还可以看一下 小明老师的python开发实战-案例讲解课程中的 使用python写数据到excel中小节, 巩固相关知识点
  • 除此之外, 这篇博客: python如何制作地图热力图中的 三、 python读取xlsx文件数据,接入百度接口 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    如何使用Python正确读取带有公式的xlsx文件?

    对于这个问题,你可以使用Python中的openpyxl库来读取和写入带有公式的xlsx文件。

    以下是一种可能的解决方案:

    1. 首先,确保你已经安装了openpyxl库。你可以使用以下命令在命令行中进行安装:

      shell pip install openpyxl

    2. 导入openpyxl库:

      python import openpyxl

    3. 使用openpyxl.load_workbook()函数加载xlsx文件:

      python wb = openpyxl.load_workbook('filename.xlsx')

    请将filename.xlsx替换为你想要读取的实际文件名。

    1. 使用wb.active属性选择活动工作表:

      python sheet = wb.active

    2. 使用sheet.iter_rows()函数迭代所有行和列,读取单元格中的值:

      python for row in sheet.iter_rows(): for cell in row: value = cell.value print(value)

    这将打印出每个单元格的值。如果遇到了公式,它将打印出公式的字符串表示形式。

    1. 如果你想获取公式的计算结果而不是字符串表示形式,可以使用cell.calculate_value()函数:

      python for row in sheet.iter_rows(): for cell in row: value = cell.calculate_value() print(value)

    这将打印出每个单元格的计算结果。

    1. 如果你想在写入时保留公式,请使用data_only=False参数加载工作簿:

      python wb = openpyxl.load_workbook('filename.xlsx', data_only=False)

    然后,使用sheet.cell()函数来读取和写入单元格的值:

    ```python
    for row in sheet.iter_rows():
        for cell in row:
            value = cell.value
            print(value)
    ```
    

    使用cell.calculate_value()函数获取公式的计算结果。

    这是使用openpyxl库读取和写入带有公式的xlsx文件的一个基本示例。请注意,某些公式可能无法从Python中进行计算,并且将以字符串形式保留。同样,请确保你已经安装了正确的依赖库并熟悉你的数据结构和函数的使用方法。

    希望这个解决方案对你有所帮助!如果你有任何其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^