Tag: openpyxl

将文件合并到xlsx中,然后重新构build目录

我有很多文件('* .pl-pl')。 我的脚本必须find每个文件,并使用openpyxl将它们合并到一个xlsx文件中。 现在,我想重build这些文件,我想重build与原件相同的文件。 但是写完后有个问题: (内容variables包含一个文件的内容(从一个Excel单元格中读取)) with open(path,'w') as f: f.write(content.encode('utf-8')) 所以现在我检查一下,原始文件是否与新文件相同。 这些文件中的文本似乎是相同的,但是大小差别不大。 当我使用WinDiff应用程序来检查它们时,它发现了一些不同的东西,但是它们说它们只是different in blanks only 。 你能给我一个build议如何重build这些文件是一样的以前? 或者这是正确的? 注意:我尝试重build它们,以确保将有相同的编码等,因为合并的Excel文件将用于翻译,然后翻译的文件必须重build,而不是原件。 这是代码 – 它检查目录并将所有文件名和内容打印到一个临时文件中。 然后,它创build一个excel文件 – 第一。 列是path(能够重build目录),第二列包含文件的内容,其中新行已被切换到“ = ” def print_to_file(): import os for root, dirs, files in os.walk("OriginalDir"): for file in files: text = [] if file.endswith(".pl-pl"): abs_path = os.path.join(root, file) with open(abs_path) […]

用应用数字格式读取单元格值?

使用openpyxl我已经能够获得所有的代码来读取.xlsx表来生成一个特定的技术文档工具所需的.xml。 我试图让代码一般适用于我的团队中的任何人可能会产生的任何表,一个问题已经咬我是XML中的一些列应用格式,以节省一些打字。 例如,我有一个表格,列的行ID和Excel中的文本读取为Test-001,Test-002,Test-003等。为了保存input,我设置了一个自定义数字格式在Excel中作为“Test-”000,允许某人键入任何列的单元格,并将其转换为Test-。 当使用openpyxl返回时读取单元格值时返回的值。 没有检查每个列的number_format,并使用正则expression式来提取string并将其添加到读取值,是否有一个openpyxl (2.2.6)的微不足道的方法有价值返回Excel用户看到的东西? 这将大大推广我的代码,因为有些表可能没有ID列。 这是python的一个最小工作示例: import openpyxl import logging logging.basicConfig(level=logging.DEBUG, format=' %(asctime)s – %(levelname)s – %(message)s') if __name__ == "__main__": logging.info('Reading from ExampleWrkBook.xlsx') wb = openpyxl.load_workbook('ExampleWrkBook.xlsx') wrkSheet = wb.get_sheet_by_name('Sheet1') logging.info('The first ID value in the sheet is "TestID-001", but openpyxl returns {0:s}'.format(str(wrkSheet['B3'].value))) 在这里可以在DropBox上find一个电子表格示例。

OpenPyxl – 当单元格引用其他源时,获取单元格的难度

我有一个电子表格从外部电子表格引用/caching值。 在Excel中查看使用OpenPyxl的单元格时,我将其内容看作string: Users 。 当我在Excel中select单元格时,我看到公式栏中的实际内容是='C:\spreadsheets\[_comments.xlsm]Rules-Source'!C5 。 我没有在我的机器上存储源电子表格。 所以,Excel显示caching来自单独的电子表格的值,因为我可以在Excel中查看本地电子表格时查看值Users 。 当我使用OpenPyxl从本地电子表格读取单元格时,得到='[1]Rules-Source'!C5 。 这是我的理解,OpenPyxl将不会评估公式。 但是,stringUsers必须caching在XLSM文档的某个地方,对吧? 有什么办法可以让OpenPyxl读取caching的源代码而不是返回单元格公式?

显示“=”而不是公式的openpyxl

我正在使用openpyxl阅读一个Excel电子表格,有很多公式。 对于某些单元格,如果我访问单元格的值,例如sheet['M30'].value我得到如下的公式: '=IFERROR(VLOOKUP(A29, other_wksheet, 9, FALSE)*E29, "")' 。 但奇怪的是,如果我试图访问另一个单元格的值,例如sheet['M31'].value我得到的就是= ,即使在Excel中该单元格与M30基本相同: '=IFERROR(VLOOKUP(A30, other_wksheet, 9, FALSE)*E29, "")' 。 这是发生在其他一堆其他公式的一堆其他工作表,我似乎无法find任何押韵或原因。 我查看了文档,我没有加载data_only=True所以我不知道发生了什么问题。

Python Openpyxl挑选单元格以开始打印numpy数组

所以我刚开始使用openpyxl,我试图打印我的numpy数组到特定的单元格。 我能够从第一个单元格开始打印数组(见下面的代码),但不知道如何select一个单元格来开始打印。 在我的例子中,我将列表转换为一个numpy数组,因为我的工作软件输出一个numpy数组。 exlist = numpy.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]) wb = Workbook() dest_filename = 'scrappaper3.xlsx' ws1 = wb.active ws1.title = 'scrap3' for x in xrange(exlist.shape[1]): ws1.append(exlist[:,x].tolist()) wb.save(filename=dest_filename) 输出从单元格A1开始,但要指定要输出的第一个单元格 1 6 11 2 7 12 3 8 13 4 9 14 5 10 15 我尝试使用类似于下面的代码从openpyxl的例子,但我不知道如何configuration它,因为我得到一个错误,说它不能转换为Excel。 ws1.cell(column=col, row=row).value = exlist

如何使用pandas将数据写入现有的Excel文件?

我想从一个Python模块tushare请求一些数据。 通过使用这个代码,我可以每次获得一行数据。 不过,我想每隔5秒向服务器发送一个请求,并将所有数据在4小时内放入一个excel文件中。 我注意到pandas已经build在了tushare。 如何把数据放在一起,只生成一个Excel文件? import tushare as ts df=ts.get_realtime_quotes('000875') df.to_excel(r'C:\Users\stockfile\000875.xlsx')

openpyxl保存只读工作簿

我似乎无法find解决这个问题。 如何closures使用openpyxl打开的工作簿? 我以只读模式打开工作簿以读取信息,而不是更改它。 现在,当我的代码运行时,如果有人同时使用它,则不可能保存excel文档。 我得到以下错误: 'path + filename'目前正在使用中。 稍后再试。 closures工作簿的方法似乎是wb.save("filename") 。 但是这不适用于我,因为我以只读模式打开它。 我能做什么? 感谢您的帮助!

在openpyxl中保留原始的单元格格式

我正在使用openpyxl版本2.3.5将数据写入现有的格式化的Excel模板(使用.xlsx扩展名)。 问题是,当我写入一个单元格时,该单元格的格式被完全覆盖。 例如,单元格A1具有蓝色填充。 当我执行下面的代码: wb = xl.load_workbook('Template.xlsx') ws = wb.worksheets[0] ws['A1'] = "TEST" wb.save('test.xlsx') 单元格A1的填充已丢失。 电子表格中有很多格式,所以我不想手动指定所有的格式。 我曾尝试从本身复制单元格的原始格式化无济于事。 此代码无效: ws['A1'].style = ws['A1'].style 有没有办法保留和/或复制Excel电子表格的原始样式/格式,只写入数据?

如何使用openpyxl 1.6遍历特定列中的单元格

我目前正在使用Python 2.7,到目前为止,已经能够做到这一点。 我需要打印列D中的单元格的值,直到excel表格的最大行。 wb = openpyxl.load_workbook(filename) sheet = wb.get_sheet_by_name('Something') for row in range(2, sheet.get_highest_row()): bla=str(row) status = sheet['D' + bla].value() print status 这给了回溯 Traceback (most recent call last): File "ExcelAnalysis.py", line 25, in <module> status = sheet['D' + bla].value() TypeError: 'Worksheet' object has no attribute '__getitem__'

我怎样才能匹配variables与cellObj值,并validation两者是相同的?

jurisdiction == "Brazil" if jurisdiction == "Brazil": for rowOfCellObjects in sheet['A2':'A5']: for cellObj in rowOfCellObjects: if cellObj.value == 'Germany': print(cellObj.value) else: print("No") else: print("Try Again") 我确定“德国”是在表中选中的单元格中的一个string。 当你打印cellObj.value时,它返回“德国”。 但是,当我要求它匹配,“如果cellObj.value ==”德国“”,它总是返回no。 任何帮助,将不胜感激。