问题标签 [openpyxl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2279 浏览

python - 使用 OpenPyXL 读取提取的 XLSX 文件

所以我一直在使用 Python 3.2 和 OpenPyXL 的可迭代工作簿,如“优化阅读器”示例中所示。

当我尝试使用此策略读取从简单的 .zip 存档(手动和通过 python zipfile 包)中提取的一个或多个文件时,我的问题就出现了。当我打电话时,.get_highest_column()我得到“A”,.get_highest_row()我得到 1,当被要求打印每个单元格的值时,如下所示:

无论文件实际有多大,它都会打印 A1、A2、A3、A4、A5、A6 和 A7 中的值。文件本身没有任何原因,它会在 Excel 中完美打开。我很困惑为什么它会这样,但我假设解压缩的 XLSX 在从 Excel 中保存之前的格式不同,并且 OpenPyXL 无法正确解释它。我什至将“.xlsx”重命名为“.zip”,这样我就可以探索文件并检查差异,但除了从 Excel 保存的那个在“xl " 以前版本没有的文件夹,包含字体和格式数据。

重要提示:当我在 Excel 中打开它并使用相同的文件名重新保存它,然后运行这段代码时,它可以完美运行- 返回正确的最大行和列值,并正确打印每个单元格值。我尝试在打开工作簿后立即通过 OpenPyXL 保存工作簿,但这会产生相同的错误结果。

基本上,我需要找到一种从.zip文件中正确提取.xlsx文件的方法,以便可以使用 OpenPyXL 读取它。有很多很多文件需要像这样处理,所以它必须在 Excel 外部,并且希望尽可能高效。

干杯!

0 投票
1 回答
402 浏览

python - 找不到要安装的 openpyxl 的任何可下载文件

我有一个要求,我必须处理 excel 来存储网页数据,但找不到任何可下载的包来使用 Python 2.7。

打开pyxl

在这方面有什么帮助吗?

0 投票
2 回答
14034 浏览

python - 如何使用 Python 将一行 Excel 工作表复制到另一个工作表

我想将每一行的给定列的值与另一个值进行比较,如果值相等,我想将整行复制到另一个电子表格。

如何使用 Python 做到这一点?

谢谢!

0 投票
3 回答
108895 浏览

python - 将 DataFrame 列表保存到多表 Excel 电子表格

如何将 DataFrame 列表导出到一个 Excel 电子表格中?
状态的文档to_excel

备注
如果传递现有的 ExcelWriter 对象,则工作表将添加到现有工作簿中。这可用于将不同的 DataFrames 保存到一个工作簿

writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()

在此之后,我想我可以编写一个函数,将 DataFrames 列表保存到一个电子表格中,如下所示:

但是(有两个小 DataFrames 的列表,每个 DataFrames 都可以to_excel单独保存),引发了一个异常(编辑:删除了追溯)

大概我没有ExcelWriter正确调用,我应该怎么做才能做到这一点?

0 投票
1 回答
1030 浏览

python - 通过从 csv 复制数据在 Python 中创建“xlsx”的问题

我正在尝试使用 python 将 csv 中的所有数据复制到 excel“xlsx”文件中。我正在使用以下代码来执行此操作:

我在SO本身上找到了这段代码并对其进行了修改以使其可用于我的案例。但是这段代码会抛出UnicodeDecodeError: 'ascii' codec can't decode byte 0xa3 in position 0: ordinal not in range(128)错误ws.cell(row=index,column=i).value = row[i]

请帮我解决这个问题。

更新:我也尝试使用以下代码来解决问题,但再次遇到UnicodeDecode错误ws.cell(row=rowx,column=colx).value = row[colx]

更新2:我也尝试使用xlwt模块将csv复制到xls(因为它不支持xlxs)并且再次遇到UnicodeDecode错误,我使用的代码是:

0 投票
1 回答
3755 浏览

python - 在 Python 2.6 中使用 openpyxl 有点挣扎

抱歉,如果已经在其他地方问过这个问题。

我已经为 Python(在本例中为 2.6)导入了 openpyxl(v.1.6.1)。到目前为止它工作得很好,但我想做什么我不太清楚。

我将列出我需要首先阅读的 xlsx 文件的结构。它本质上是一个备用名册,如下所示:

A1 B1 C1 D1
YYYY/MM/DD System1 System2 System3
A2 B2 C2 D2
2013/02/11 User A User B User C
A3 B3 C3 D3
2013/02/12 User D User E User F
A4 B4 C4 D4
2013/02/13 User G User H User I

我需要做的是首先扫描A中的所有单元格(第1行除外,所以A2到A-infinity),然后根据我是否可以在单元格A2到A-infinity中找到今天的日期,打印与今天相关的整行日期以及用户关联的系统(因此在本例中为 B3、C3 和 D3 以及 B1、C1 和 D1)。

我可以粘贴到目前为止的内容,但数量不多:

使用标准文本文件,我通常会执行以下操作:

我只是不确定如何使用 openpyxl 处理带有 xlsx 文件的文本文件。谁能给我一个提示如何去做?

我想我需要做的是扫描 A 下的所有内容(不知道该怎么做),匹配今天的日期(我想我能弄清楚的日期),然后打印出整行(Bxxx,Cxxx, Dxxx 等)如果找到今天的日期(也不知道如何执行此操作)。

希望我可以解释我的问题,但如果没有,请告诉我,我会再试一次。

编辑:多亏了格伦,我想我比以前更进一步了,但还没有完全到达那里。我到目前为止的代码:

我现在遇到的错误是“AttributeError:'tuple'对象没有属性'internal_value'”(仍在谷歌搜索这个)。

def find_row 部分以前看起来像这样:

这提供了以下内容: NotImplementedError: use 'iter_rows()' instead

编辑#2:感谢 Glen Swinfield 的帮助和耐心,我想我终于弄明白了。这是代码现在的样子(如果看起来有点乱,请原谅,原来电子表格中有很多列):
import datetime import openpyxl from openpyxl import load_workbook

0 投票
2 回答
37076 浏览

python - 如何删除excel电子表格中满足某些条件的行?

我想创建一个 Excel (xlsx) 电子表格的“简化”版本(即通过根据某些标准删除一些行),我想知道这是否可以用openpyxl.

在(pythonish)伪代码中,我想要做的看起来像:

可以用 来完成这样的事情openpyxl,如果可以,怎么做?

0 投票
3 回答
4101 浏览

python - 如何将本地图片的超链接写入openpyxl中的单元格?

我使用 Python 2.7.3 我需要通过 openpyxl 库将本地图片的超链接写入单元格。

当我需要向网站添加超链接时,我会写如下内容:

从 openpyxl 导入工作簿

我有3个问题:

  1. 我们如何像 VBA 的样式函数那样编写超链接: ActiveCell.FormulaR1C1 = _ "=HYPERLINK(""http://stackoverflow.com/questions/ask"",""site"")" 使用 hyherlink 和她的名字
  2. 我们如何编写本地图像的超链接? ws.cell('B2').hyperlink = ('1.png') # It doesn't work! And I don't now what to do ) Plese, help me )
  3. 我们可以使用 unicode 超链接来图像吗?例如当我使用 ws.cell('B1').hyperlink = (u'http://pythonhosted.org/openpyxl/api.html') It fail with error! for example we have picture 'russian_language_name.png' and we create hyperlink in exel without any problem. We click to the cell, and then print '=Hyperlink("http://stackoverflow.com/questions/ask";"site_by_russian_language")

保存文件,解压他。然后我们去他的目录到 xl->worksheets->sheet1.xml 我们看到标题

<?xml version="1.0" encoding="UTF-8" standalone="true"?>

接着 ...

row r="2" x14ac:dyDescent="0.25" spans="2:6">-<c r="B2" t="str" s="1"><f>HYPERLINK("http://stackoverflow.com/questions/ask","site_by_russian_language")</f><v>site_by_russian_language</v></c>

一切正常 =) Exel 支持 unicode,但是 python 的库 openpyxl 呢?它支持超链接中的 unicode 吗?

0 投票
3 回答
36382 浏览

python - 如何将列表写入 Excel 列?

我有一个 Python 中的一些值的列表,并希望使用 openpyxl 将它们写入 Excel 电子表格列。

到目前为止,我尝试过,lstStat需要写入 Excel 列的整数列表在哪里:

TypeError: 'NoneType' object is not callable在代码片段的最后一行得到了一个。

你能帮我弄清楚如何将我的数据写入 Excel 列吗?

0 投票
2 回答
4726 浏览

python - 将 unicode 字符串写入 Excel 2007

我正在使用pyodbc. 此外,我正在尝试.xlsx使用openpyxl.

这是我的代码(Python 2.7):

有效,至少直到我遇到一个客户,例如,名称:"mún"。我的代码没有失败,一切都写入 Excel,一切都很好。直到我真正打开 Excel 文件——这会导致错误提示文件已损坏,需要修复。修复文件后,所有数据都会丢失。

我知道该代码适用于具有常规名称(仅 ASCII)的客户,只要有重音字符或 Excel 文件损坏的任何内容。

我试图打印一行(具有困难的客户名称)。这是结果:

row是一个元组,这是一个索引:'Mee\xf9s Tilburg'所以要么写入\xf9 (ú)字符会导致错误,要么 MS Excel 无法处理它。我尝试了各种将行编码为 un​​icode(unicode(row,'utf-8')u''.join(row))等的方法,但没有任何效果。要么我尝试一些愚蠢的方法导致错误,要么 Excel 文件仍然错误。

有任何想法吗?