Python excel单元格不覆盖追加写入

 在使用 openpyxl 库写入数据到指定单元格时,默认是覆盖原有的数据,而不是换行追加。如果你重复写入同一个单元格,新的值将会覆盖掉之前的值,而不会在原有值的基础上换行追加。

如果同一个单元格需要重复写入,可以使用openpyx库,先读取该单元格的现有内容,然后将新内容追加到已有内容后面,最后再将整个结果写回到单元格中。

#coding=utf-8

import openpyxl

PATH2 = 'E:\\AUTO\\pythonProject\\data\\test.xlsx'    #excel表

# 指定 Excel 文件路径
excel_path = PATH2

# 打开 Excel 文件
wb = openpyxl.load_workbook(excel_path)

# 选择要操作的表单(sheet),这里假设是默认的第一个 sheet
sheet = wb.active

# 要写入的新内容
new_content = "6030B0100003"

# 读取原有内容
current_value = sheet['B22'].value
print current_value

# 如果原有内容不为空,则在其后加上换行符再追加新内容
if current_value:
    current_value += "\n" + new_content
else:
    current_value = new_content

# 将新内容写回单元格 B22
sheet['B22'] = current_value

# 保存修改后的 Excel 文件
wb.save(excel_path)

# 关闭 workbook
wb.close()

### 使用Python库向Excel单元格写入数据 为了实现向Excel文件中的特定单元格写入数据,在Python中有多种方法可以完成此操作,其中`openpyxl`和`pandas`是最常用的两个库。 #### 利用 `openpyxl` 库直接访问并修改单元格 对于精确控制单个或多个单元格的内容而言,`openpyxl`提供了直观的方法来打开现有工作簿以及创建新的工作表。下面是一个简单的例子展示如何设置指定位置的数据: ```python from openpyxl import Workbook wb = Workbook() # 创建一个新的工作簿对象 ws = wb.active # 获取默认的工作表 ws['A1'] = 'Hello' # 向 A1 单元格写入字符串 "Hello" ws.cell(row=2, column=2).value = 42 # 或者通过 row 和 column 参数定位到 B2 并赋值为整数 42 wb.save('sample.xlsx') # 将更改保存至名为 sample 的xlsx 文件中 ``` 这段代码展示了基本的操作流程:初始化Workbook实例、获取活动sheet、利用索引方式更新具体cell的值最后调用save函数持久化变更[^3]。 #### 借助 `pandas` 进行高效批量处理 当涉及到大量结构化的表格型数据时,`pandas`提供了一种更简洁的方式来进行读取与写出操作。特别是结合DataFrame这种强大的二维数组容器,能够轻松地将整个表格一次性导入导出而无需逐行遍历每一个元素。这里有一个具体的案例说明怎样把一个包含多列信息的数据框存回excel文档里去: ```python import pandas as pd data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30], 'Salary': [70000, 80000]} df = pd.DataFrame(data) with pd.ExcelWriter('output.xlsx') as writer: df.to_excel(writer, sheet_name='Sheet1') ``` 上述脚本先构建了一个字典形式的基础资料集再转换成DataFrame格式;接着借助于`pd.ExcelWriter()`上下文管理器确保所有待写的DataFrames都能被正确无误地记录下来,并且还可以自定义目标路径下的sheet名称[^2]。 值得注意的是,如果希望覆盖已存在的Excel文件而只是追加新内容,则可以在调用`to_excel()`之前删除旧版本或者在`ExcelWriter`构造参数中加入选项mode='w'强制覆写模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

amonge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值