Tag: python

使用openpyxl写入行?

我正在尝试在Python中使用openpyxl编写一个列表,但无济于事。 该列表包含说例如十个值。 我需要打开一个现有的工作表,并把这十个值写到他们自己的单元格中,一行。 我需要使用openpyxl,因为它覆盖现有工作表的function与xlsxwriter相比只能创build新的工作表。

使用openpyxl来更改Excel文档而不删除现有的数据和graphics

我试图用python将数据文件中的数据从openpyxl复制到excel模板。 我试着做一些testing来玩模板,发现当我保存文件时,它删除了大部分现有的单元格和所有的图表。 我在另一个问题阅读,openpyxl可能不适合编辑现有的电子表格。 有没有更好的select或方法让这个工作? 这是我正在处理的代码,只是为了查看我是否可以编辑电子表格: import openpyxl wb=openpyxl.load_workbook('file.xlsm', keep_vba=True) A=wb.get_sheet_by_name("A") g=A['F24'].value print g A['A1'].value=g print A['A1'].value wb.save('file2.xlsm') 当我打开file2时,大部分的格式化,数据和所有的图表都没有了。 编辑:所以我正在尝试xlwings,我找不到一个很好的教程或使用的术语列表。 任何人都知道我在哪里可以find?

parsing不同数量的标签的XML,以使长度相等的列表。 openpyxl和Beautifulsoup

我有一个XML文件,其中有包含作者,出版date,标签等标签的书籍logging。 我将parsing这个文件来创build3个列表,其中一个将有书名,另一个列表中的作者,最后是第三个列表中的标签,稍后我将使用openpyxl将这些列表写入Excel列。 问题是一些书籍logging没有标签标签。 使用普通的美味汤的parsing技术将产生相同长度的前两个列表,但标签列表将具有较短的长度。 我有三个问题: 1-如何创build所有三个长度相同的列表(没有标签标签的书籍为空)2-标签列表看起来像这样['Energy; Green Buildings; High Performance Buildings','Computing','Computing ;devise;绿色build筑“,…….]我已经创build了另外15个标题,标题名称是我的,例如”计算“和”devise“,有没有什么办法可以使用openpyXL为图书标签组合创build一个X标记或彩色单元格,例如,如果一本书中包含特定的标签,例如,如果第5行中的标题为“Architecture”的书具有“Design”标签,则需要单元格中的X标记或有色单元格(row'5',col'Design')。是否有更简单的方法来完成此任务(parsingXML文件并在Excel中高效编写)? 下面是XML文件的快照和我写的代码(也可以从这里下载XML文件和Python文件: http : //www.ranialabib.com/#! python/ icfwa <?xml version="1.0" encoding="UTF-8"?> <xml> <records> <record> <database name="My Collection.enl" path="My Collection.enl">My Collection.enl</database> <ref-type name="Book">1</ref-type> <contributors> <authors> <author>AIA Research Corporation</author> </authors> </contributors> <titles> <title>Regional guidelines for building passive energy conserving homes</title> </titles> <periodical/> <keywords/> <dates> <year>1978</year> </dates> <publisher>Dept. […]

在通过excel运行时,xlwings不会在file.xlsm中写入数据

我正在尝试使用xlwings从几个xls文件进行简单合并。 为此,我有一个all_files.xlsm文件,其中包含一个分配给它的macros的button。 这些macros如下所示: Sub check_data() RunPython ("import python_code; python_code.consolidation()") End Sub 在同一个文件夹中,我有一个文件python_code.py里面有“合并”function。 我也使用Workbook.set_mock_caller()为了有机会通过python接口运行代码。 看起来像: def consolidation(file_path): *** smth to get the data I need *** … *** after I got data *** Range('A1').table.clear_contents() #string1 Range('A1').value = data #string2 def main(): consolidation(file_path) if __name__ == '__main__': xl.Workbook.set_mock_caller(path_to_file) main() 问题是,当我通过excel文件中的button运行脚本的最后两个string(string1和string2) – 范围('A1')。table.clear_contents()和范围('A1')。value = data doesn'工作。 虽然其余的代码工作正常(但是,它也包含xlwing)。 而且,如果我使用set […]

用于合并两个电子表格的Python代码,与Excel中的“索引匹配匹配”function类似

我有两个单独的电子表格,并使用pandas为了将其转换成数据框架。 我正在寻找从电子表格2中提取信息并将这些信息合并到电子表格1中。我知道如何通过使用“索引匹配匹配”function来提取excel中的信息,但是我在使用Python因为它似乎不适合合并或连接方法…或者我只是错过了连接。 电子表格1将如下所示: 电子表格1 电子表格2将如下所示: 电子表格2 最终结果的头像是这样的: 区域分支Master_Product_Name Retrieved_# 北,弗雷斯诺,产品1: 5,060 北,弗雷斯诺,产品2: 2,429 北,萨克拉门托,产品3: 405 北,弗雷斯诺,产品6:10 会发生什么事是程序将插入一个新的列,并将基于索引列和行插入数据到单个数据点。 所以对于我的例子中的第一行,这是弗雷斯诺和产品1 …它将在电子表格中看两行,直到它到达产品1,然后直到find弗雷斯诺和插入5,060。 在目前的情况下,有地区栏不重要,但有能力检索基于多个标准是我能想象的。

使用defaultdict从.xlsx文件追加列表

我试图带有两个字段,ID和XY坐标的Excel文件,并创build一个字典,使每个ID是所有的XY坐标值的关键。 例如,excel文件看起来像这样:[1] [1]: http : //i.stack.imgur.com/P2agc.png 但是有超过900个oID值 我想最终的格式是[('0',[ – 121.129247,37.037939,-121.129247,37.037939,-121.056516,36.997779]),('1',[all,the,coordinates,with,oID,的,1]),( '2'[全部的,协调,与,OID的,2]等)。] 我正在尝试使用for语句遍历Excel表格来填充第一个200行的列表,然后将其放入默认字典中。 这是我迄今为止所做的: wb=openpyxl.load_workbook('simpleCoordinate.xlsx') sheet=wb['Sheet1'] from collections import defaultdict CoordDict = defaultdict(list) for i in range (1,201,1): coordinate_list=[(sheet.cell(row=i,column=1).value, sheet.cell(row=i, column=2).value)] for oID, xy in coordinate_list: CoordDict[oID].append(xy) print(list(CoordDict.items())) 它返回: [(11, ['-121.177487,35.49885'])] 只有excel表格的第200行,而不是整个的东西..我不知道我在做什么错了,这是与声明的东西? 我以错误的方式思考这个问题吗? 我是一个Python的总新手任何build议将是有益的!

使用XLwings将variables从Excel传递给Python

我想在Python中编写一个简单的用户定义的函数,我通过Xlwings从Excel传递一个值。 我用一个加载项运行一些例子,你需要导入用户定义的函数,但是这似乎过于复杂。 为什么我的例子不工作? VBA: Function Hello(name As String) As String RunPython ("import Test; Test.sayhi(name)") End Function Python( Test.py ): from xlwings import Workbook, Range def sayhi(name): wb = Workbook.caller() return 'Hello {}'.format(name) 错误: NameError: name 'name' is not defined

Python只使用xlwt / xlrd附加xls文件

我遇到问题追加数据到xls文件的问题。 长话短说,我正在使用一个程序从某些东西获取一些数据,并将其写入一个xls文件。 如果我运行脚本10次,我想结果被附加到相同的xls文件。 我的问题是,我被迫使用Python 3.4和xlutils不支持,所以我不能使用复制function。 我只需要使用xlwt / xlrd 。 请注意,该文件不能是一个xlsx 。 有什么办法可以做到这一点?

Python BeautifulSoup Scrape数据写入Excel“NotImplementedError”

我正在尝试编写一个脚本,用Python和BeautifulSoup来抓取网站,然后将数据写入excel表单。 它的工作,直到写作部分,然后我得到一个NotImplementedError ? 我查了一下,然后用TRY:和Pass:blocks ….将代码的写入部分包围起来。它解决了Python解释器控制台窗口中的错误,但是我的Excel表格是空白的。 这是我到目前为止: import requests, openpyxl from bs4 import BeautifulSoup wb = openpyxl.Workbook('RDWM_CRM.xls') wb.create_sheet('Phone') sheet = wb.get_sheet_by_name('Phone') # nav to webpage I want to scrape url = "http://www.yellowpages.com/search?search_terms=roofing%20company&geo_location_terms=New%20York%2C%20NY&page=2" r = requests.get(url) soup = BeautifulSoup(r.content) # for loop finds info then prints for div in soup.find_all("div", {"class": "info"}): print (div.contents[0].text) print (div.contents[1].text) # […]

在Python / numpy中Excel的MINVERSE相当于什么

我将客户端的Excel公式转换为Python脚本,并使用MINVERSE , TRANSPOSE和MMULT 。 transpose和dot处理这些在numpy,但我似乎无法find一个MINVERSE型函数。 我正在使用的数组看起来像这样: array([[Decimal('0.00001937974193760863606765660052'), Decimal('0E-32'), Decimal('0E-33'), Decimal('0E-32'), Decimal('0E-33'), Decimal('0E-32'), Decimal('0E-33'), Decimal('-0E-35'), Decimal('0E-34')], [Decimal('0E-32'), Decimal('0.00001881570399319161379416374436'), Decimal('0E-32'), Decimal('0E-32'), Decimal('0E-33'), Decimal('0E-33'), Decimal('0E-33'), Decimal('0E-36'), Decimal('0E-34')], [Decimal('0E-33'), Decimal('0E-32'), Decimal('0.00002155088649394313957212468752'), Decimal('0E-32'), Decimal('0E-32'), Decimal('0E-32'), Decimal('0E-32'), Decimal('0E-34'), Decimal('-0E-34')], [Decimal('0E-32'), Decimal('0E-32'), Decimal('0E-32'), Decimal('0.00002308127083915646134802447962'), Decimal('0E-33'), Decimal('0E-33'), Decimal('0E-33'), Decimal('0E-34'), Decimal('0E-34')], [Decimal('0E-33'), Decimal('0E-33'), Decimal('0E-32'), Decimal('0E-33'), Decimal('0.00002310448983055357325172035711'), Decimal('0E-32'), Decimal('0E-32'), Decimal('0E-34'), Decimal('-0E-34')], [Decimal('0E-32'), Decimal('0E-33'), Decimal('0E-32'), Decimal('0E-33'), […]