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

无法将我从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,也不真正了解它是什么)。 该程序非常简单。我有两个列表(浮点数)和三个变量(字符串)。我不知道两个列表的长度,它们的长度可能不一样。 粉色列将具有第一个列表的值,绿色列将具有第二个列表的值。 那么最好的方法是

  • 问题内容: 我正在寻找使用openpyxl将行插入电子表格的最佳方法。 实际上,我有一个电子表格(Excel 2007),该电子表格具有标题行,其后最多(数千)行数据。我希望将行插入为实际数据的第一行,因此在标题之后。我的理解是,附加功能适合于将内容添加到 结尾 的文件。 阅读有关openpyxl和xlrd(以及xlwt)的文档,除了手动循环浏览内容并将其插入新表(在插入所需行之后)之外,我找不到