马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我要改写F2~F10的数据,为何写到了F2~N2?
- import xlwings as xw
- app = xw.App(visible = True, add_book = False)
- workbook = app.books.add()
- sheet = workbook.sheets.add ("1月份考核表")
- str1 = [
- ["序号","姓名","性别","年龄","职业","业绩"],
- [1,"小鱼","女",22,"导师",78],
- [2,"菲菲","男",21,"讲师",45],
- [3,"茉莉","女",23,"管理员",78],
- [4,"嘻嘻","女",22,"网站设计",77],
- [5,"星星","男",23," UI 设计",78],
- [6,"乐乐","女",22,"教育达人",90],
- [7,"朱朱","女",21,"学生",29],
- [8,"皮皮","男",24,"班主任",56],
- [9,"东东","男",21,"形象设计师",99]
- ]
- rag = sheet.range ("A1:F10")
- rag.value = str1
- rag3 = sheet.range("F2:F10")
- rag3.value = [89,99,98,78,77,88,99,94,85]
- workbook.save("业绩考核表.xls")
- workbook.close()
复制代码
这可能是由于在 `rag3` 的赋值语句中,提供了一个带有9个条目的单行列表。当指定范围时,它实际上是试图将其放置在F2到N2上,从而导致了数据溢出。
要解决这个问题,请确保 `rag3.value` 中提供的列表与 `rag3` 相应的行/列数量匹配,即只包含`F2`到`F10`的9个条目,并且可以通过以下方式修改代码:
- rag3 = sheet.range("F2:F10")
- new_values = [89,99,98,78,77,88,99,94,85]
- rag3.value = [[x] for x in new_values] # 将传递的列表转换为二维列表以匹配range,每个元素都由单个值组
复制代码
这将创建带有 9 行和1列的二维列表,其中每个值都在对应的单元格中存储。现在修改后的代码应该可以完美运行,并将所需的数据写入只覆盖 `F2` 到 `F10` 单元格。
|