Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在跳过空单元格的同时将数据从一张工作表复制到另一张工作表-Python和Openpyxl_Python_Excel_Openpyxl - Fatal编程技术网

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

如何在跳过空单元格的同时将数据从一张工作表复制到另一张工作表-Python和Openpyxl,python,excel,openpyxl,Python,Excel,Openpyxl,我正在使用python格式化Excel电子表格。我需要从表1“主”中的L列复制数据,并将其粘贴到表2“数据”中的A列。我已经让它工作了,但我还想跳过空单元格,它们在工作表1中随机出现,这里我运行了intro-trouble 我试过: for i in range(2, 50): for j in range(12, 13): if cell.value != None: data.cell(row=i, column=j-11).value = m

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

我试过:

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:name'value'未定义”


有什么想法吗

这是我们正在编写的代码(请参阅注释以了解来来回回):


这是我们开始工作的代码(请参阅前后的注释):


只要可能,您应该避免使用自己的计数器,让openpyxl为您完成这项工作。对于一个新的工作表,这是相当容易的

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]

只要可能,您应该避免使用自己的计数器,让openpyxl为您完成这项工作。对于一个新的工作表,这是相当容易的

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]

不确定这是否是答案,但是否在此循环之前定义了单元格?在if语句中它是否应该是main.cell?(即,如果main.cell(i,j).value!=None)?则删除错误消息!但空白细胞仍在表2中出现。我认为这是将数据复制到同一编号行,而不是下一个空白行。嗯…嗨,凯特,我从来没有用过Openpxl,但我想知道在你的最后一行中,你是否真的想让它说:data.cell(row=I+1,column=j-11)…刚刚开始工作:对于范围(2,50)中的I:对于范围(12,13)中的j:if main.cell(I,j).value!=无:data.cell(data.max_行+1,列=j-11)。value=main.cell(行=i,列=j)。value请共享所有相关代码和数据。请参阅:。另外,您应该使用
is
检查变量是否为
None
,而不是
=
。不确定这是答案,但是否在此循环之前定义了单元格?在if语句中它是否应该是main.cell?(即,如果main.cell(i,j).value!=None)?则删除错误消息!但空白细胞仍在表2中出现。我认为这是将数据复制到同一编号行,而不是下一个空白行。嗯…嗨,凯特,我从来没有用过Openpxl,但我想知道在你的最后一行中,你是否真的想让它说:data.cell(row=I+1,column=j-11)…刚刚开始工作:对于范围(2,50)中的I:对于范围(12,13)中的j:if main.cell(I,j).value!=无:data.cell(data.max_行+1,列=j-11)。value=main.cell(行=i,列=j)。value请共享所有相关代码和数据。请参阅:。另外,您应该使用
is
检查变量是否为
None
,而不是
=