2015-06-20 6 views
-2

Здравствуйте, я пытаюсь создать программу python, которая проверяет две ячейки в листе excel (1) start_date и (2) end_date в листе excel, используя openpyxl, чтобы проверить, находится ли текущий_датчик между ними. У кого-нибудь есть какие-то указания на то, как я могу это сделать?Дата форматирования с openpyxl

У меня возникли проблемы с получением даты в переменной, которую я могу манипулировать. Когда я ставлю эту строку:

B2 содержит дату

дата = печать (sheet_ranges [ "B2"] значение.)

дата тогда равна 'None'

поэтому любая помощь было бы здорово.

###Adam Giancola 
###June 16th 2015 
###This program will open and excel file and play with some data in the cells 
###This documentation is helpful: 
# http://openpyxl.readthedocs.org/en/latest/usage.html#read-an-existing-workbook 



#VERSION 1: This program can read an inputted number and track the nuber of times it is used 

#VERSION 2: This program will check if the coupon is expired 

import sys 
import openpyxl 
from openpyxl import Workbook 
from datetime import datetime 
from openpyxl import load_workbook 
import re 

try: 
    while(1): 




     match_flag = 0 
     #Assign varialble to both Workbook & Sheet 
     wb = openpyxl.load_workbook(filename = 'coupon_book.xlsx') 
     sheet_ranges = wb.get_sheet_by_name('Sheet1') 

     date = print(sheet_ranges["B2"].value) 
     print(date) 

     #Print data from an array 
     #print(sheet_ranges['A1'].value) 


     input_value = eval(input("Hello please enter a coupon code: ")) 
     #Reads inputs as a number rather than a character 



     for row in sheet_ranges.iter_rows(): 
      #data = row[0].value #no need for this line 

       if row[0].value == input_value: 

         match_flag = 1 
         temp = row[3].value 
         row[3].value = temp - 1 
         if match_flag == 1: 
          print("We have a match!") 




     if match_flag == 0: 
      print("Sorry your coupon is not valid") 


     wb.save('coupon_book.xlsx') 
+0

Не могу ответить на этот вопрос без дополнительной информации. Что такое 'sheet_ranges'? Какие ячейки вас интересуют? –

+0

sheet_ranges - это просто имя листа excel. –

+2

Пожалуйста, добавьте больше кода (проверьте правила форматирования) и какие ячейки вам интересны. –

ответ

0

Я бы сказал, что вам просто нужно избавиться от print:

date = sheet_ranges["B2"].value

print возвращается None, так вот почему вы получаете это значение, а не значение из клетка.

+0

Я вижу, но мне нужно оценить значения внутри ячейки. Я пытаюсь найти способ извлечь день, месяц и год из ячейки. Я нашел этот пост, который в значительной степени является причиной того, что я пытаюсь сделать. –

+0

@ A.Cola - если это ответ, это «разворот того, что я пытаюсь сделать», почему вы его приняли? – msw

+0

Извините, я думал, что это было голосование! Ваш ответ был в порядке, мой вопрос в том, как я могу превратить свой тип None в interger или строку или что-то, что я могу манипулировать в своей программе. Но я нашел еще одну запись, которая была противоположна тому, что я хочу делать (писать вместо того, чтобы читать). Http://stackoverflow.com/questions/24370385/how-to-format-cell-with-datetime-object-of- the-form-yyyy-mm-dd-hhmmss-in-exc –