def cellfill(self):
        filepath="/xxxx/xxxxx/xxxxxx/xxxxxx/Copy of VRBO Data_rev(05-08-2019).xlsx"
        import openpyxl
        wb_obj = openpyxl.load_workbook(filepath) 
        sheet_obj = wb_obj.active
        max_col = sheet_obj.max_column 
        max_row=sheet_obj.max_row
        box = Border(
        diagonal=Side(border_style="thin", color='000000'),
        )
        redFill = PatternFill(start_color='808080',
        end_color='808080',
        fill_type='solid')
        box.diagonalUp=True
        for j in range(8,max_row + 1):
            for i in range(21, max_col + 1):

                cell_obj = sheet_obj.cell(row = j, column = i)

                try:
                    if "_Diagonal" in cell_obj.value and "$" in cell_obj.value  :

                        cell_obj.value = str(cell_obj.value).replace("_Diagonal", "").strip()
                        cell_obj.border = box
                    elif "_Diagonal" in cell_obj.value:
                        cell_obj.value = str(cell_obj.value).replace("_Diagonal", "").strip()
                        cell_obj.fill=redFill
                except:pass 
                if cell_obj.value is None:
                    cell_obj.fill=redFill

        wb_obj.save(filepath)
Example #2
0
    def xls_style_to_xlsx(self, xf_ndx):
        """Convert an xls xf_ndx into a 6-tuple of styles for xlsx"""
        font = Font()
        fill = PatternFill()
        border = Border()
        alignment = Alignment()
        number_format = 'General'
        protection = Protection(locked=False, hidden=False)
        if xf_ndx < len(self.book.xf_list):
            xf = self.book.xf_list[xf_ndx]

            xls_font = self.book.font_list[xf.font_index]       # Font object
            font.b = xls_font.bold
            font.i = xls_font.italic
            if xls_font.character_set:
                font.charset = xls_font.character_set
            font.color = self.xls_color_to_xlsx(xls_font.colour_index)
            escapement = xls_font.escapement        # 1=Superscript, 2=Subscript
            family = xls_font.family                # FIXME: 0=Any, 1=Roman, 2=Sans, 3=monospace, 4=Script, 5=Old English/Franktur
            font.name = xls_font.name
            font.sz = self.xls_height_to_xlsx(xls_font.height)    # A twip = 1/20 of a pt
            if xls_font.struck_out:
                font.strike = xls_font.struck_out
            if xls_font.underline_type:
                font.u = ('single', 'double')[(xls_font.underline_type&3)-1]

            xls_format = self.book.format_map[xf.format_key]    # Format object
            number_format = xls_format.format_str

            if False:               # xlrd says all cells are locked even if the sheet isn't protected!
                protection.locked = xf.protection.cell_locked
            protection.hidden = xf.protection.formula_hidden

            fill_patterns = {0x00:'none', 0x01:'solid', 0x02:'mediumGray', 0x03:'darkGray', 0x04:'lightGray', 
                    0x05:'darkHorizontal', 0x06:'darkVertical', 0x07:'darkDown', 0x08:'darkUp', 0x09:'darkGrid', 
                    0x0A:'darkTrellis', 0x0B:'lightHorizontal', 0x0C:'lightVertical', 0x0D:'lightDown', 0x0E:'lightUp',
                    0x0F:'lightGrid', 0x10:'lightTrellis', 0x11:'gray125', 0x12:'gray0625'
                    }
            fill_pattern = xf.background.fill_pattern
            fill_background_color = self.xls_color_to_xlsx(xf.background.background_colour_index)
            fill_pattern_color = self.xls_color_to_xlsx(xf.background.pattern_colour_index)
            fill.patternType = fill_patterns.get(fill_pattern, 'none')
            fill.bgColor = fill_background_color
            fill.fgColor = fill_pattern_color

            horizontal = {0:'general', 1:'left', 2:'center', 3:'right', 4:'fill', 5:'justify', 6:'centerContinuous', 7:'distributed'}
            vertical = {0:'top', 1:'center', 2:'bottom', 3:'justify', 4:'distributed'}
            hor_align = horizontal.get(xf.alignment.hor_align, None)
            if hor_align:
                alignment.horizontal = hor_align
            vert_align = vertical.get(xf.alignment.vert_align, None)
            if vert_align:
                alignment.vertical = vert_align
            alignment.textRotation = xf.alignment.rotation
            alignment.wrap_text = xf.alignment.text_wrapped
            alignment.indent = xf.alignment.indent_level
            alignment.shrink_to_fit = xf.alignment.shrink_to_fit

            border_styles = {0: None, 1:'thin', 2:'medium', 3:'dashed', 4:'dotted',
                5:'thick', 6:'double', 7:'hair', 8:'mediumDashed', 9:'dashDot',
                10:'mediumDashDot', 11:'dashDotDot', 12:'mediumDashDotDot',
                13:'slantDashDot',}
            xls_border = xf.border
            top = Side(style=border_styles.get(xls_border.top_line_style), color=self.xls_color_to_xlsx(xls_border.top_colour_index))
            bottom = Side(style=border_styles.get(xls_border.bottom_line_style), color=self.xls_color_to_xlsx(xls_border.bottom_colour_index))
            left = Side(style=border_styles.get(xls_border.left_line_style), color=self.xls_color_to_xlsx(xls_border.left_colour_index))
            right = Side(style=border_styles.get(xls_border.right_line_style), color=self.xls_color_to_xlsx(xls_border.right_colour_index))
            diag = Side(style=border_styles.get(xls_border.diag_line_style), color=self.xls_color_to_xlsx(xls_border.diag_colour_index))
            border.top = top
            border.bottom = bottom
            border.left = left
            border.right = right
            border.diagonal = diag
            border.diagonalDown = xls_border.diag_down
            border.diagonalUp = xls_border.diag_up

        return (font, fill, border, alignment, number_format, protection)
Example #3
0
#     objVH.start()

from selenium import webdriver
import sys, time
import openpyxl
from openpyxl.styles import Color, PatternFill, Border, Side, Font
import pandas, datetime
import ast, json
fill = PatternFill(
    start_color='FFFFFF',
    # start_color='808080',
    # end_color='FFFFFF',
    fill_type='solid')

box = Border(diagonal=Side(border_style="thin"), )
box.diagonalUp = True

# basic_style = Style(font=Font(name='Microsoft YaHei')
#     , border=box
#     , fill=fill)


class VRBOHelper():
    def __init__(self):
        # self.url = "https://www.vrbo.com/1048405"
        chrome_path = "/home/gc14/Documents/fiverr/scrapyapp/scrapyapp/utility/chromedriver"
        self.driver = webdriver.Chrome(chrome_path)
        self.driver.maximize_window()
        self.file_name = 'Copy of VRBO Data_rev.xlsx'

    def getCalendarData(self, tables):