Tag: python

比较Exceldate和Python中的当前date

Python新手在这里! 🙂 基本上,我试图扫描一个Excel文件的列A(其中包含所有date),如果单元格中的date是未来7天…做一些事情。 由于我正在学习,所以我只是先看看一个单元,然后才开始循环数据。 这是我目前的代码不工作。 import openpyxl, smtplib, datetime, xlrd from openpyxl import load_workbook from datetime import datetime wb = load_workbook(filename = 'FRANKLIN.xlsx') sheet = wb.get_sheet_by_name('Master') msg = 'Subject: %s\n%s' % ("Shift Reminder", "Dear a rem ") cell = sheet['j7'].value if xlrd.xldate_as_tuple(cell.datemode) == datetime.today.date() + 7: print('ok!') 这里是我得到的错误代码:'datetime.datetime'对象没有属性'datemode' 我尝试过search高低,但不能完全find解决scheme。

使用Python查找Excel单元格引用

这里是有问题的Excel文件: 上下文:我正在写一个程序,它可以从PDF中提取值,并将它们放在Excel文件的适当单元格中。 问题:我想写一个函数,它将一个列值(例如2014)和一个行值(例如'COGS')作为参数,并返回这两个相交的单元格引用(例如,2014年COGS的“C3”)。 def find_correct_cell(year=2014, item='COGS'): #do something similar to what the =match function in Excel does return cell_reference #returns 'C3' 我已经尝试使用这样的openpyxl来更改一些随机空单元格的值,我可以存储这些值: col_num = '=match(2014, A1:E1)' row_num = '=match("COGS", A1:A5)' 但我想抓住这些值,而不必随意写入这些随机的空单元格。 另外,即使使用这种方法,当我读取这些单元格(F5和F6)时,它将读取这些单元格中的公式,而不是3的面值。 任何帮助表示赞赏,谢谢。

将数据从一个Excel文件转换成一个Python字典

我试图将数据从Excel文件转换为Python字典。 我的Excel文件有两列和许多行。 Name Age Steve 11 Mike 10 John 11 我怎样才能把这个添加到字典与年龄作为关键和名称作为价值? 而且,如果很多名字都有相同的年龄,他们应该都是一个数组。 例如: {'11':['Steve','John'],'10':['Mike']} 我到目前为止写的是: import xlsxwriter import openpyxl wb = openpyxl.load_workbook('demo.xlsx') sheet = wb.get_sheet_by_name('Sheet1') #print sheet.cell(row=2, column=2).value age_and_names = {} for i in range(1,11): age = sheet.cell(row=i, column=2).value name = sheet.cell(row=i, column=1).value #Problem seems to be in this general area if not age in […]

Python – select具有特定起始string和扩展名的最新文件

新手:我有以下代码,根据修改时间从下载文件夹中获取最新的Excel文件: import os import glob latest_Excel = max(glob.iglob('C:\Users\Aditya\Downloads/*.xlsx'), key=os.path.getmtime) 现在,所有的Excel文件都有“本地”或“全局”作为其起始名称。 例如。 Local_20160808.xlsx,Local_20160809.xlsx,Global_20160810.xlsx,Global_20160811.xlsx等 那么,我们如何才能从同一个文件夹中获取2个文件的名称:最新的以“Local”作为起始名称的Excel文件和最后一个以“Global”作为起始名称的Excel文件? 谢谢

xlrd – 打开文件问题

我正在使用xlrd 0.9.4 ,我想validation一下,我必须打开的文件是否有效。 为此,我根据这个问题编写了这个代码: try: book = xlrd.open_workbook(file_path) print "Done" except XLRDError: print "Wrong type of file." 其中file_path是我的文件的path。 这工作正常,问题是以下。 首先我有一个有效的.xls文件,所以脚本打印完成 。 现在,假定有效的.xls文件被重命名(也是扩展名),例如从test.xls到test.txt。 如果我运行脚本,我有相同的结果( 完成 )。 相反,如果我使用“真正的”.txt文件(空白或一些文本),该脚本打印错误的文件types。 发生这种情况是因为文件的“结构”没有改变? 难道我做错了什么? 还有另一种types的exception,我可以添加到分支除外 ? 提前致谢

在python中写入excel csv的值

我有下面的代码,我试图写入Excel文件的值,但是我的输出在每一列中添加一个字母,而不是整个单词,像这样 我希望整个单词在一列中。 我正在传递一个数组,其中包含“ [u'Date / Time', u'City', u'State', u'Shape', u'Duration', u'Summary'] 。 我怎样才能做到这一点,以便我把整个单词放在一列中? import requests import csv from bs4 import BeautifulSoup r = requests.get('http://www.nuforc.org/webreports/ndxlAK.html') soup = BeautifulSoup(r.text, 'html.parser') csv.register_dialect('excel') f = open('ufo.csv', 'wb') writer = csv.writer(f) headers = soup.find_all('th') header_text = [] header_count = 1 for header in headers: if header_count == len(headers): print "value […]

openpyxl:工作表不存在(与字符集有关)

我用openpyxl加载工作表,并遇到get_sheet_by_name引发的问题Worksheet does not exist 。 #!/usr/bin/env python # -*- coding: utf-8 -*- from openpyxl import load_workbook file_workbook = 'JCR2015影响因子(所有期刊从高到低sorting)+中科院分区.xlsx' sheet_name = '2015年JCR' wb = load_workbook(file_workbook, read_only=True) print(wb.get_sheet_names()) # [u'2015\u5e74JCR'] ws = wb.get_sheet_by_name(sheet_name) # raise the error: KeyError: 'Worksheet 2015\xe5\xb9\xb4JCR does not exist.' '2015年JCR' , '2015年JCR' , '2015年JCR' u'2015\u5e74JCR'和'2015\xe5\xb9\xb4JCR'什么不同? 我如何解决它?

尝试使用像pandas轴心pandas枢轴

我有一个像这样的pandas数据框架,我想使用pd.pivot_table来枢轴转动 import pandas df = pd.DataFrame({"Id":[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 10], "Error":[0, 99, 0, 0, 0, 98, 0, 0, 0, 0, 33, 0, 23, 0, 0, 0, 83, 0]}) 我试图像这样旋转(在Excel中进行数据透视): 我试过这个: dfPivot = pd.pivot_table(df, index = "Id", columns = df.Error.unique(), values = "Error", […]

Python:将多个文件从xls转换为csv

我正在尝试在Python 2.7中编写一个脚本,将当前目录中的所有.xls和.xlsx文件转换为.csv并保留其原始文件名。 在其他类似问题的帮助下(不幸的是,我不知道该借用哪些代码),以下是迄今为止我所得到的结果: import xlrd import csv import os def csv_from_excel(xlfile): wb = xlrd.open_workbook(xlfile) sh = wb.sheet_by_index(0) your_csv_file = open(os.path.splitext(sxlfile)[0], 'wb') wr = csv.writer(your_csv_file, dialect='excel', quoting=csv.QUOTE_ALL) for rownum in xrange(sh.nrows): wr.writerow(sh.row_values(rownum)) your_csv_file.close() for file in os.listdir(os.getcwd()): if file.lower().endswith(('.xls','.xlsx')): csv_from_excel(file) 我有两个问题: 1)我无法弄清楚为什么程序运行时,只转换一个文件,并不遍历当前目录中的所有文件。 2)我不知道如何通过转换保留原始文件名。 也就是说,输出文件与input名称相同。 谢谢

如果条件公式与引用失败,则为openpyxl

使用python 2.7和openpyxl,我将IF公式插入到引用其他工作表中字段的excel工作表中。 而其他公式的工作(CONTIF,COUTN,SUM等),我没有find这个“简单”如果公式不起作用的原因。 只有IF是这个问题 这是我的代码 for i in range(0,len(sortedWorkers)): for a, rr in enumerate(dates): row_nb = i + 3 coll = 3 + a clmn_letter = get_column_letter(coll + 3) # =IF(Worked!I$2=7;Worked!I3;"") valFormula = '=IF(Worked!%s$2=7;Worked!%s%s;"")' %(clmn_letter,clmn_letter, str(row_nb)) _cl = ws12.cell(column= coll, row= row_nb, value=valFormula) 在评论中你可以select公式。 格式是正确的。 如果我手动将其插入到Excel中,它也可以工作。 另外字段坐标和一切匹配。 有什么build议么? 谢谢