python excel讀寫與dict轉換


 

學習excel讀寫,將一個excel文件內容轉換為dict用於后續處理,將dict寫入excel

 

# coding = 'utf-8'
import time
import xlrd,xlsxwriter

start = time.clock()
def read_excel(file):
    """
    讀入excel文件
    :rtype : object
    :param file:
    :return: 數據對象
    """
    try:
        data = xlrd.open_workbook(file)
        return data
    except Exception as err:
        print(err)

def write_excel(file):
    """
    讀入excel文件
    :rtype : object
    :param file:
    :return: 數據對象
    """
    try:
        data = XlsxWrite.Workbook(file)
        return data
    except Exception as err:
        print(err)


def excel_to_dict(read_excel_file,excel_title):
    """
    :rtype : object
    :return dict
    """
    dict2 = {}
    data = read_excel(read_excel_file)
    table = data.sheet_by_name(u'bas_info')
    for i in range(1,table.nrows):
        row_content = table.row_values(i, 0, table.ncols)
        dict1 = dict(zip(excel_title, row_content))
        dict2[i] = dict1
    return dict2


def dict_to_excel(dict_content,excel_title):
    """
    將字典寫入excel中
    :type dict_content: object dict
    excel_title 列標題
    """
    dict_ing = dict_content
    excel_init_file = xlsxwriter.Workbook(out_excel_file)
    table = excel_init_file.add_worksheet('bas_info')
    title_bold = excel_init_file.add_format({'bold': True, 'border': 2, 'bg_color':'blue'})
    border = excel_init_file.add_format({ 'border': 1})
    for i,j in enumerate(excel_title):
        table.set_column(i,i,len(j)+1)
        table.write_string(0,i,j,title_bold)
    for k,v in dict_content.items():
        for i in range(len(v)):
            j = v.get(excel_title[i])
            table.write_string(k,i,j,border)
    table.set_column(1,1,16)
    table.set_column(0,0,16)
  
excel_init_file.close()
if __name__ == '__main__': 
  read_excel_file
= r'D:\baspools_read.xlsx'
  out_excel_file
= r'D:\baspools_out.xlsx'
  excel_title
= ['basname', 'basip', 'location', 'baslocation', 'port', 'basprovider', 'portal_version', 'timeout', 'retry','auth_type']
  dict_content
= excel_to_dict(read_excel_file,excel_title) #excel to dict
  dict_to_excel(dict_content,excel_title) #dict to excel write to out_excel_file
  end
= time.clock()
  print("read: %f s" % (end - start))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM