Tag: python

xlwings中的Python用户定义函数

我试图弄清楚xlwings。 我有以下的Python代码: from xlwings import xlfunc from datetime import timedelta, datetime @xlfunc def convert(gmt): gmtValue = datetime(int(gmt[6:10]), int(gmt[3:5]), int(gmt[0:2]), int(gmt[11:13]), int(gmt[14:16]), int(gmt[17:19])) localTime = gmtValue – timedelta(seconds=(6*3600)) return localTime 它所做的只是花时间戳string,如05/01/2016 14:25:56 GMT,并拉开GMT并将其转换为当地时间(美国的中央时间)。我试图使用该代码有: Sub convertToLocal() RunPython(“import converToLocal; convertToLocal.convert(gmt)”) End Sub 为了制作一个用户定义的函数,但是Excel似乎不能识别python代码,即使我已经导入了xlwings.bas模块。 我得到的唯一错误是“编译错误:预期的语句结束”。我认为这只是意味着Excel无法识别Python代码。 任何想法如何解决它? 另外,将单元格内容传递给Python代码的正确方法是什么?

每次脚本运行时插入新数据而不覆盖现有数据(Openpyxl:python)

我在使用openpyxl时遇到了麻烦。 我遇到的问题是: 我试图运行一个小时Excel报告使用我通过(BS4)在网上刮过的数据。 我已经将数据分配到一个列表中,可以解压缩以便在PowerShell和Excel中打印,但每次运行脚本时都会覆盖以前的数据。 我想知道如何在每次脚本运行时将数据打印到新行。 问题循环: c = 1 for cell_val in status: sheet1.cell(row=2, column=c).value = cell_val c += 1 print(c)

Openpyxl – 从字典写入excel的行和列

所以我试图做的是从字典中写入现有的Excel文件: wb = load_workbook(filename='test.xlsx') ws2 = wb.get_sheet_by_name("Blad3") tuple(ws2.iter_rows('A2:I1000')) for i in ws2.iter_rows('A2:I1000'): print str(row[0].value) for i in Candidates: row[0].value = i['Start Location'] row[1].value = i['Distance'] row[2].value = i['End Location'] for p in Potential_candidates: row[4].value = p['Start Location'] row[5].value = p['Distance'] row[6].value = p['End Location'] for n in No_coords: row[8].value = No_coords print 'Saving to file […]

用python和pandas和多个索引读取excel文件

我是一个Python新手所以请原谅这个基本的问题。 我的.xlsx文件看起来像这样 Unnamend:1 A Unnamend:2 B 2015-01-01 10 2015-01-01 10 2015-01-02 20 2015-01-01 20 2015-01-03 30 NaT NaN 当我使用pandas.read_excel(…)在Python中读取它时,pandas会自动使用第一列作为时间索引。 是否有一句话告诉大pandas注意到,每一列都是属于时间序列的时间索引? 所需的输出将如下所示: date AB 2015-01-01 10 10 2015-01-02 20 20 2015-01-03 30 NaN

如果df或groupby为空白,如何打印“Nothing here”以显示出色?

我正在计算一些指标,并将其打印到excel中使用 writer = pd.ExcelWriter('File.xlxs', engine = 'xlsxwriter') 'metric'.to_excel(writer, sheetname = 'x') 有时我的指标将是空白的(例如,filter已经过滤了所有东西)。 有没有办法打印出优秀的,让我打印“这里没有”,如果指标是空白使用xlsxwriter方法?

xlwings – 不会写入“范围”?

我有基本的xlwings操作的问题 – 写'Foo'到单元格(范围)。 xlwings Mac OSX 10.10.1 xlWings v0.6.4 Mac办公室2016年 支持文档的说明: xw.Range('A1').value = 'Foo 1' 我input的内容是: xw.Range('Sheet1', 'A1:C20').value = 100 这是及时回报: >>> wb = xw.Workbook('Workbook1') >>> xw.Range('Sheet1','A1:C20')。Value = 100 >>> _ 我转向我的工作簿 – 没有写入任何单元格。 但是,我可以确认xlWings已经成功导入到Python中,并且wb连接已经build立 – > Excel在input初始连接语句时会打开一个新的工作簿。 我如何去解决这个问题? 谢谢!

连接到现有工作簿会在xlwings中引发错误

当我尝试连接到现有的工作簿并validation连接是否正常工作时,如下所示: import xlwings as xw wb = xw.Workbook('/users/edchigliak/sites/xlwings/htz/google/sem_google_realizacija_2016.xlsm') print(wb.sheet(1).name) terminal在Mac OSX Yosemite抛出这个错误 : OSERROR:-1728 MESSAGE:您尝试访问的对象不存在 COMMAND:app(u'/ Applications / MicrosoftExcel.app')。workbooks ['sem_google_realizacija_2016.xlsm']。name.get() 工作簿确实被打开 ,它会提示要求启用macros和数据连接的权限,所以一切都很好。 在我看来,如果我试图在MicrosoftExcel.app而不是从xlwings库调用.name()方法(或属性?)? 我最终希望做的事(贯穿整个过程): 连接到这个现有的.xlsm 阅读'Sheet14.RangeF:F'和'Sheet14.RangeI:我'成一个python字典 validation这是成功的 请告诉我如何去做这件事。

用excel保存csv,python可以正确追加行

当我从Excel中保存一个csv文件(Mac版本15.17)用python追加新行不按要求工作 eg我把这个文件保存在excel中: col1 col2 col3 —————– 1234 1234 1234 1234 1234 1234 我用python添加这些行 5678 5678 5678 5678 5678 5678 我得到: col1 col2 col3 1234 1234 1234 1234 1234 12345678 5678 5678 5678 5678 5678 好像excel错过了最后一次换行。 有没有办法解决这个问题,而不是在每个excel文件的末尾手动添加(用代码)换行符。 用文本编辑器打开文件并添加换行符可以解决问题,但这是一个可怕的工作。 在Python中使用的代码将一行添加到csv: with file(append_to_this_csv.csv, 'a') as writefile: writer = csv.writer(writefile) row = [[5678,5678,5678]] writer.writerows(row)

Python – 使用win32com.client将Excell单元格范围格式化为表格

我试图编写一个函数,select工作表中的所有非空单元格,调整列的宽度内容,并格式化为表格。 我卡在最后一点,这是我目前的代码: import win32com.client from win32com.client import constants f = r"D:\Project\test_copy.xlsx" exc = win32com.client.gencache.EnsureDispatch("Excel.Application") exc.Visible = 1 exc.Workbooks.Open(Filename=f) exc.ActiveSheet.UsedRange.Select() exc.Selection.Columns.AutoFit() exc.ActiveSheet.ListObjects("Table1").TableStyle ="TableStyleLight8" 问题在于最后一行。 我不知道该怎么做,因为错误信息是非常神秘的。 Google在这方面没有太多帮助。 *snip* line 80, in __call__ ret = self._oleobj_.InvokeTypes(0, LCID, 2, (9, 0), ((12, 1),),Index pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352565), None) 我真的很感谢这里的一些帮助…

如何从excel文件中用Python中的逗号分隔stringparsing出美国所有的州。

我有一个文件列有名字,另一个用逗号分隔的美国许可证,例如AZ,CA,CO,DC,HI,IA,ID; 但是50个状态的任何组合都是可能的。 我有另一个文件,每个状态都有一定的值,比如AZ = 4,CA = 30,DC = 23,等等都是50。 我需要通过他们的许可证组合来增加每个人持有的金额。 说一个只有CA的人会有30个,而有AZ,CA和DC的人会有30 + 4 + 23 = 57; 并且50个许可证的任意组合是可能的。 我知道一些Python,但还不足以知道如何开始,使用哪些软件包,体系结构应该是什么。 任何指导表示赞赏。 谢谢。