当前位置: 首页 > 知识库问答 >
问题:

无法将我从excel电子表格导入的字符串用作Python openpyxl中的相等变量

冀永寿
2023-03-14

我使用openpyxl导入了一个单元格值。excel单元格位于B2中,它是一个简单的单词,假设它是测试,没有引号。

我导入它,然后将其分配给变量:

cell = worksheet.cell('B2')
variable = str(cell.value)

如果我打印变量,我将得到:

"testing"

加上引号。

我试图在这样的if语句中使用它:

if cell == "testing":
    print("working")

但什么也没发生。我试过:

print(cell == "testing")

而我得到了虚假的回报。

我怎么才能修好它?

导入单元格时,它是包中的一个对象,但我使用str()将其转换为字符串。单元格最初(在电子表格上)周围没有引号,但在导入后,它有引号,我无法删除它。我试着使用。replace()。strip()

编辑:找到了解决方案,在加载工作簿时,我必须输入data_only=True。这样地:

wb = load_workbook("scm.xlsx", data_only=True)

共有1个答案

孔永年
2023-03-14

单元格包含的不仅仅是一个值,这就是为什么将它们与值进行比较时总是False。如果cell.value=="测试",测试应该是。不需要显式转换为字符串,这是由库处理的。

 类似资料:
  • 问题内容: 我有一个电子表格,实际上只有一个复杂的表格。我基本上将电子表格转换为cvs,并使用常规脚本生成INSERT脚本。 但是,我无法使用包含28个字段的表来执行此操作,该表包含电子表格中某些字段中的数据,这使得导入CVS更加复杂。因此,新CVS中的字段无法正确区分,或者我的脚本没有对此进行说明。 有人对更好的方法有任何建议吗?谢谢。 问题答案: 看一下LOAD DATA INFILE语句。这

  • 我是Python新手。我需要将程序中的一些数据写入电子表格。我在网上搜索过,似乎有很多可用的软件包(xlwt、XlsXcessive、openpyxl)。其他人建议写信给一家公司。csv文件(从未使用过csv,也不了解它是什么)。 程序非常简单。我有两个列表(float)和三个变量(string)。我不知道这两个列表的长度,它们可能不会是相同的长度。 我希望布局如下图: 粉红色列将具有第一个列表的

  • 问题内容: 我正在尝试使用VBA将数据表从excel导入SQL Server 2012。 最好在UDF的帮助下。 excel表看起来像这样。 (我将数字放在单元格中以指定其位置。例如11 =第1行,第1列) 数据库表看起来像这样。 (这不包括“主键”列,该列可以是id和year的组合,也可以是a ) 我知道如何导入特定的列,例如,我可以运行以下代码: 这对于单个列非常有用,但是我将如何使其适用于整

  • 问题内容: 我有一个名为tblAccounts的表,其内容将来自excel电子表格。 我在Windows 8.1(x64)上使用MS SQL Server 2008(x64) 我尝试使用SQL Server导入/导出向导,但是没有选择现有表的选项,只有一个创建新表的选项。 我尝试使用其他方法,例如OPENROWSETS 但是给了我一个错误: 消息7308,级别16,状态1,行1 OLE DB提供程

  • 问题内容: 我需要将程序中的一些数据写入电子表格。我在网上搜索过,似乎有很多可用的软件包(xlwt,XlsXcessive,openpyxl)。其他人则建议写入.csv文件(从未使用过CSV,也不真正了解它是什么)。 该程序非常简单。我有两个列表(浮点数)和三个变量(字符串)。我不知道两个列表的长度,它们的长度可能不一样。 粉色列将具有第一个列表的值,绿色列将具有第二个列表的值。 那么最好的方法是

  • 问题内容: 如何在Java 中将字符串拆分为相等大小的子字符串。例如。大小相等的4个应该给出输出。 问题答案: 这是regex一线版: 是一个零宽度断言,它与上一个匹配结束的位置匹配。如果是以前没有的比赛,它的输入的开始,同相匹配。后面的封闭式匹配从最后一场比赛的末尾开始算起的四个字符的位置。 都是落后的,都是高级正则表达式功能,并非所有版本都支持。此外,在支持它的所有口味上实现的方式不一致。此技