首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在跳过空单元格的同时将数据从一个工作表复制到另一个工作表- Python和Openpyxl

如何在跳过空单元格的同时将数据从一个工作表复制到另一个工作表- Python和Openpyxl
EN

Stack Overflow用户
提问于 2020-01-06 09:48:35
回答 2查看 282关注 0票数 0

我正在使用python格式化Excel电子表格。我需要从表#1 "Main“中的列L复制数据,并将其粘贴到表#2 " data”中的列A中。我已经让它正常工作了,但我也想跳过空单元格,这是在表#1中随机出现的,在这里我运行了intro。

我试过了:

代码语言:javascript
复制
for i in range(2, 50):
    for j in range(12, 13):
        if cell.value != None:
            data.cell(row=i, column=j-11).value = main.cell(row=i, column=j).value

然而,我得到错误消息"NameError:名称‘值’未定义“

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2020-01-06 10:45:55

这是我们运行的代码(请参阅前后的注释):

代码语言:javascript
复制
import os
import openpyxl

wb = openpyxl.load_workbook('/Users/path/.xlsx')
main = wb['Sheet1']
wb.create_sheet(title='Formatted Data')
data = wb['Formatted Data']

for i in range(2, 50):
    for j in range(12, 13):
        if main.cell(i,j).value != None:
            data.cell(data.max_row+1, column=j-11).value = main.cell(row=i, column=j).value
票数 2
EN

Stack Overflow用户

发布于 2020-01-06 19:31:09

只要有可能,你就应该避免使用自己的计数器,让openpyxl为你做这项工作。对于一个新的工作表,这是非常简单的。

代码语言:javascript
复制
empty_row = [None] * 11
for row in main.iter_rows(min_col=12, max_col=2, min_row=2, values_only=True):
    if row[0] != None:
         data.append(empty_row + row]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59605804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档