Tag: openpyxl

openpyxl:读取$和。 来自xlsx

我想使用python将xlsx文件转换为TAB分隔的csv。 阅读后,我被指向名为openpyxl的库(下面的代码) def importXLSX(fileName): temp = os.path.basename(fileName).split('.xlsx') tempFileName = os.path.dirname(os.path.abspath(fileName))+"/TEMP_"+temp[0]+".csv" tempFile = open(tempFileName,'w') wb = load_workbook(filename=fileName) ws = wb.worksheets[0] #Get first worksheet for row in ws.rows: #Iterate over rows for cell in row: cellValue = "" if cell.value is not None: cellValue = cell.value tempFile.write(cellValue+'\t') tempFile.write('\n') os.remove(fileName) return tempFileName 我input的文件包含账单数据,但是这个函数将$ 2,000转换为2000,将0.00转换为0 任何想法为什么?

openpyxl.load_workbook(file,data_only = True do not't work?

为什么x =“None”而不是“500”? 我已经尝试了一切,我知道和search1小时的答案…谢谢你的帮助! import openpyxl wb = openpyxl.Workbook() sheet = wb.active sheet["A1"] = 200 sheet["A2"] = 300 sheet["A3"] = "=SUM(A1+A2)" wb.save("writeFormula.xlsx") wbFormulas = openpyxl.load_workbook("writeFormula.xlsx") sheet = wbFormulas.active print(sheet["A3"].value) wbDataOnly = openpyxl.load_workbook("writeFormula.xlsx", data_only=True) sheet = wbDataOnly.active x = (sheet["A3"].value) print(x) # None? Should print 500?

使用openpyxl获取单元格值的显示string

我使用的是openpyxl来处理excel .xlsx文件。 文件中的某些列包含不同数字types的单元格。 我可以从Cell对象中获取number_type和value,但找不到获取 string 的简单方法 。 我已经花了几个小时的文档和openpyxl的来源,但什么都没发现。 例如,我从ipython得到这个输出: In [6]: ws['D4'].value Out[6]: 0.02 In [7]: ws['D4'].data_type Out[7]: 'n' In [8]: ws['D4'].number_format Out[8]: '0.0%' In [9]: ws['D2'].number_format Out[9]: u'yyyy"\u5e74"m"\u6708"d"\u65e5";@' In [10]: ws['D2'].value Out[10]: 42370L 我怎么能得到像'2%'和'2%'这样的string? 单元格可能是一些自定义单元格格式,所以我更喜欢一般的方式。

openpyxl将数值作为date处理。 结果:OverflowError:date值超出范围

我将Excel导出例程从xlwt迁移到openpyxl 。 一切都是好的,直到我真的想保存我制作的东西。 一个垃圾收集在openpyxl的引擎下openpyxl ,它会抛出一个错误,因为像5或6(测量),或24242757(id)数字看起来被认为是date。 使用xlwt我们没有任何代码来向库提示这些值是数字而不是date。 (我曾在多个平台上的Excel导出之前,我知道深入Exceldate实际上是整数( OADate ))。 OverflowError : date value out of range Traceback (most recent call last): File "C:\Users\foobar\spoolerque\models.py", line 82, in run result = task_function(self, **kwargs) File "C:\Users\foobar\ratings\views.py", line 1332, in create_analytics_report_task return foobar_export(task=task, players=report_list, ev=ev, sort_by=sb) File "C:\Users\foobar\ratings\views.py", line 1177, in foobar_export xls_export.save(file_contents) File "C:\Users\foobar\main\utils.py", line 602, in save […]

在Excel中使用命名范围与select的单元格?

是否有可能在Excel中使用定义的命名范围,如myArray指=summary_data!$C$2:$H$6 然后在另一个工作表中使用该名称将数据的内容粘贴到给定范围=summary_data!$C$2:$H$6 这样做的原因是,我将数据注入到模板中的其他工作表中,而前端工作表从多个工作表中获取数据。 目前我可以使用以下单细胞来做到这一点,但定义每个单独的细胞是乏味的: =INDIRECT("'" &V1& "'!" & "summary_data_C2")名称设置为summary_data_C2 V1包含工作表名称。

如何保留形状当修改工作簿的openpyxl?

我有一个格式化的excel文件,但是当我修改它的白色openpyxl,形状消失,我可以保持形状,或需要重做的形状(线)。

如何在Excel应用程序打开时使Python更改xlsx文件?

对不起,如果我问一个以前可能已经问过的问题,但我不能真正find在谷歌和堆栈溢出论坛的答案。 问题与openpyxl用法有关,因为它是使用xlsx文件的最方便的库。 import openpyxl wb = openpyxl.load_workbook("D:/Python.xlsx") sheet = wb.active i = 0 sheet["A1"] = i wb.save("D:/Python.xlsx") 但是,它不适用于打开的Excel文件。 我得到一个错误 [Errno 13] Permission denied: 'D:/Python.xlsx' 我也发现了类似的问题: PermissionError [errno 13]在Komodo中运行openpyxl python脚本时 写一个开放的exceldocument 我能做些什么来解决这个错误,并使Python在Excel中打开的文件工作? 我目前的版本是Python 2.7。 另外,如果可能的话,在xlsm文件中制作相同的魔法有什么解决scheme? UPD: 如果没有第一个问题的解决scheme(除了Google Docs,也许感谢@Alex),是否有可能编写一个代码使得以下algorithm能够执行:1.closuresExcel应用程序并保存2.在Python中执行工作人员,并将结果保存在Excel中的某个目标中3.在Excel应用程序中打开Excel文件? 我知道该怎么做2.对1和3有什么想法? UPD2: xlwings真的很棒! 正是我所需要的! 谢谢! 我想提供一个适用于我的代码(其他用户可以在Google中find并使用): import xlwings as xl import time wb = xl.Workbook.active() sheet = wb.active […]

从excel数据循环到每个键有多个值的字典

我相当新的Python,我认为这个问题是相当容易,但我不明白… 我在Excel中有一个数据表,我有B列string和C到I列作为值。 我想创build一个字典,其中为B列中的每个键值,我分配C到列的值我想出了如何做到每行,一次在一次,但我正在寻找for循环语法在整个excel数据表中做到这一点。 这是我的代码: NYSE = {} NYSE.setdefault(sheet['B5'].value, []).append(sheet['C5'].value) NYSE.setdefault(sheet['B5'].value, []).append(sheet['D5'].value) NYSE.setdefault(sheet['B6'].value, []).append(sheet['C6'].value) NYSE.setdefault(sheet['B6'].value, []).append(sheet['D6'].value) print NYSE 我可以保持手动添加到此… B7 C7,B7 D7等,但必须有一种方法来循环此function,并输出字典。

Python:根据另一列中的值提取单元格值

我需要从D列(黄色)中提取string,只要F列(蓝色)中有一行有#个。 我是一个初学者,正在尝试pandas和openpyxl这个任务,但没有运气。 哪一个会更好呢? 我希望他们存储,以便我可以稍后访问它们。 另外,从H列(绿色)提取数字将是最简单的正则expression式? 链接到excel的onedrive

openpyxl – 遍历列和行以从表格中间获取数据

我正在阅读openpyxl的文档,我需要一些更具体的东西,我不确定是否有办法使用iter_rows或iter_cols。 在文档中,它说这样做来抓取行和列: for row in ws.iter_rows(min_row=1, max_col=3, max_row=2): for cell in row: print(cell) 要么 for col in ws.iter_cols(min_row=1, max_col=3, max_row=2): for cell in col: print(cell) 这样做会给我A1,B1,C1等或A1,A2,B1,B2,等等。 但有没有办法来操纵这个,所以你可以从工作表中的另一个点抓取数据? 例如,我试图抓取从F3到W3的单元格。 但我不确定有多less行,可能有5个,可能有10个。所以我需要抓住F4到W4等等,直到我到达最后一个可能是F10到W10什么的。 我明白iter_rows和iter_cols是如何工作的,但是我还没有find一种方法来操作它在其他地方开始,如果没有其他的值剩下来就结束了。 看来我将不得不定义max_rows到工作表中有多less行。 有没有办法让它检查最大数量的行本身? 我所遇到的最大的问题是如何遍历从表格中间开始的行,而不是开始。 它不必使用iter_rows或iter_cols,这只是我在文档中阅读最多的部分。 先谢谢你!