使用xlsxwriter

时间:2018-08-17 21:47:05

标签: r python-2.7 locking xlsxwriter

generated excel sample  附件是我使用xlsxwriter生成的Excel。

带有灰色标题的列被锁定,而带有黑色标题的列未被锁定。 这样做的方式是,我从程序的输入中获得一个指示符,该指示符告诉我应该锁定或解锁特定的列以及需要解锁的行数。

我创建了一个地图,其中要解锁的标头为键,要解锁的范围为值,然后保护整个图纸并解锁范围。下面是代码片段:

cell_lock_range是具有标题名称和要解锁范围的字典。

sheet.protect('',{'insert_columns':是的,                                'delete_columns':是的,                                'format_columns':是的,                                'format_cells':是的,                                'select_locked_cells':否,                                “ select_unlocked_cells”:是                                })

        for name, range in self.cell_lock_range.iteritems():
            r_val = range.split(':')
            if r_val and len(r_val) > 2:
                low = int(r_val[1])
                cl = r_val[0]
                hi = int(r_val[2])

                while low <= hi:
                    cell_to_unlock = cl+str(low)
                    sheet.write(cell_to_unlock, ' ', self.unlocked)
                    name_r = name.split('-')
                    if name_r and name_r is not None and len(name_r) > 1:
                        name = name_r[1];
                        xml_name = name_r[2];
                    if low == 4:
                        sheet.write(cell_to_unlock, name, self.unlocked_format_bold)
                    if low == 5:
                        sheet.write(cell_to_unlock, xml_name, self.attribute_format)
                    low += 1
  1. 使用这种方法,我面临两个问题,如果我插入一个选择未锁定列的新列,则新列将添加到所选列的左侧,并且该列将使用其右侧的属性。如果它的右侧具有锁定列,则新插入的列也将被锁定,并且无法进行编辑。

  2. 尽管我在受保护的工作表中将insert_column设置为true,但是只有一部分未解锁的单元格。例如10行。因此,当我尝试删除插入的行时说工作表已受保护,因此无法删除该列。我只能撤消列插入。

我的问题是,不是保护整个工作表,有没有办法锁定一系列单元格?那应该可以解决我的问题。

谢谢。

0 个答案:

没有答案