如何将单元格范围值粘贴到行的折叠轮廓线上?

时间:2019-04-15 19:16:46

标签: python-3.x openpyxl

是否有一个openpyxl命令来扩展组/轮廓部分(例如,在Excel中单击行旁边的+号)?

在粘贴范围之前,我一直在寻找打开任何轮廓组的命令。

仅当单元格中包含公式并且只想复制/粘贴值时,我才将源文件作为数据打开。

如果我的目标文件在目标行组轮廓折叠的情况下保存,则复制/粘贴代码会运行,但会在每个单元格中粘贴0。

如果我的目标文件在目标行组轮廓被展开的情况下保存,则复制/粘贴代码将运行并粘贴正确/期望的值。

有什么方法可以使用openpyxl扩展该部分,以便我可以将其保存下来然后进行处理?还是有其他方法可以将值粘贴到大纲组中已折叠的行中的单元格中?

#This is opening the source file as data only.

CPriorData = openpyxl.load_workbook(Cons_Ready,data_only=True)
CombinedData = CPriorData["Combined Position"] 


# Copy and paste Current Day to Prior Day Areas: Combined
# This works.
def copyRange(startCol=2, startRow=43, endCol=116, endRow=54, sheet=CombinedData):
    rangeSelected = []
    for i in range(startRow,endRow + 1,1):
        rowSelected = []
        for j in range(startCol,endCol+1,1):
            rowSelected.append(CombinedData.cell(row = i, column = j).value)
        rangeSelected.append(rowSelected)

    return rangeSelected

def pasteRange(startCol, startRow, endCol, endRow, sheetReceiving,copiedData):
    countRow = 0
    for i in range(startRow,endRow+1,1):
        countCol = 0
        for j in range(startCol,endCol+1,1):

            sheetReceiving.cell(row = i, column = j).value = copiedData[countRow][countCol]
            countCol += 1
        countRow += 1

selectedRange = copyRange(2,43,116,54,CombinedData) 
pastingRange = pasteRange(2,57,116,68,Combined,selectedRange)

0 个答案:

没有答案