R. *_*eph 3 python python-2.7 openpyxl
让我先说一下,我已经尝试过寻找,但似乎无法找到类似的情况,所以如果你觉得这很熟悉,请不要太烦恼.我使用的是Python 2.7和openpyxl 2.2.5版本(我需要使用2.7,并且出于其他原因使用了较旧的模块.)
我是Python的新手,一般都是读/写代码,所以我在实现它之前在命令行上测试它:
我foo.xlsx
在Python27文件目录中创建了一个文件,其中包含一些我通过Excel手动输入的值.
然后我在Python命令行上使用这个简单的代码来测试我的代码
from openpyxl import load_workbook
wb = load_workbook('foo.xlsx')
sheet_ranges = wb['range names']
Run Code Online (Sandbox Code Playgroud)然后导致以下错误:
文件"C:\ Python27\lib\openpyxl\workbook.workbook.py",getitem中的第233 行 引发KeyError("工作表{0}不存在.".format(key))
KeyError:'工作表工作表范围名称不存在'
所以我认为这与不导入整个openpyxl模块有关.我继续这样做并运行整个过程,但它导致了同样的错误.
有人可以让我知道我做错了什么/如何解决这个问题?
附加信息:
我之前已成功写入空文件,然后读取值.这给了我正确的价值,除了我通过Excel手动编写的内容 - 手动输入的单元格返回None或Nonetype.问题似乎是手动输入的细胞.
我确实在访问它之前点击了保存文件,不用担心
这是在同一目录中,所以我知道这不是一个位置问题.
以下命令没有意义:
sheet_ranges = wb['range names']
Run Code Online (Sandbox Code Playgroud)
通常,您打开一个工作簿,然后访问其中一个工作表,下面给出了一些如何完成此操作的示例:
import openpyxl
wb = openpyxl.Workbook()
wb = openpyxl.load_workbook(filename = 'input.xlsx')
# To display all of the available worksheet names
sheets = wb.sheetnames
print sheets
# To work with the first sheet (by name)
ws = wb[sheets[0]]
print ws['A1'].value
# To work with the active sheet
ws = wb.active
print ws['A1'].value
# To work with the active sheet (alternative method)
ws = wb.get_active_sheet()
print ws['A1'].value
Run Code Online (Sandbox Code Playgroud)
如果要在工作簿中显示任何命名范围,可以执行以下操作:
print wb.get_named_ranges()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4876 次 |
最近记录: |