发布新日志

  • python如何对xlsx文件进行修改操作

    2017-07-21 17:34:44

    不能直接对xlsx文件进行修改,需要讲原来的xlsx文件内容读出来,修改之后在写到新的xlsx文件中去。读取xlsx文件用xlrd模块,写xlsx文件用xlsxwriter模块。

    1、安装
       pip install xlrd
       pip install xlsxwriter

    2、举例:读取原来xlsx文件中的内容,循环多次构成10000条数据写入到新的xlsx文件中。
     #encoding=utf-8
    import time
    import xlsxwriter
    import xlrd
    import random

    if __name__=="__main__":
        tm=time.strftime("%Y%m%d", time.localtime())
        workbook = xlsxwriter.Workbook(tm+u'-发布模板.xlsx')
        worksheet = workbook.add_worksheet('Sheet0')
        bold_format = workbook.add_format({'bold':True})
        data_format = workbook.add_format({'num_format':'0.00'})
        date_format =workbook.add_format({'num_format':'####-##'})
        text_format=workbook.add_format()
        text_format.set_pattern(9)
        data=xlrd.open_workbook("20170721 .xlsx")
        table = data.sheet_by_index(0)
        nrows = table.nrows
        ncols = table.ncols
        worksheet.write('A1', u'盟友人员编号')
        worksheet.write('B1', u'月份')
        worksheet.write('C1', u'云闪付交易金额')
        worksheet.write('D1', u'云闪付可分润金额')
        worksheet.write('E1', u'拓展奖交易金额')
        worksheet.write('F1', u'拓展奖可分润金额')
        worksheet.write('G1', u'推广奖交易金额')
        worksheet.write('H1', u'推广奖可分润金额')
        worksheet.write('I1', u'园丁奖交易金额')
        worksheet.write('J1', u'园丁奖可分润金额')
        worksheet.write('K1', u'导师奖交易金额')
        worksheet.write('L1', u'导师奖可分润金额')

        for m in xrange(12000/nrows):
        
            for i in xrange(nrows):
                if i==0:
                    i+=1
                for j in xrange(ncols):
                    
                    cell_value = table.cell_value(i,j)
                    if m==0:
                        worksheet.write(m*nrows+i,j,cell_value)
                    else:
                        worksheet.write(m*(nrows-1)+i,j,cell_value)
        workbook.close()
  • 利用python的xlsrd模块对XLSX文件进行读操作

    2017-07-21 10:12:07

    1、pip install xlsrd #安装xlsrd模块;
    2、举例
       import xlrd #导入读操作

       if __name__=="__main__":

        data=xlrd.open_workbook("demp.xlsx") #打开demp.xlsx文件
        sheet_names=data.sheet_names()  #获取所有sheets名
        print  sheet_names
        sheets=data.sheets() #获取所以sheets
        print sheets
        table=sheets[0]  #获取第一个sheet
        print table
        table=data.sheet_by_index(0) #根据索引获取第一个sheet
        print table
        table=data.sheet_by_name(u"Sheet1") #根据sheet名称获取第一个sheet
        print table
        nrows=table.nrows   #获取有数据的行数
        print nrows
        ncols=table.ncols  #获取有数据的列数
        print ncols
        for rownum in range(nrows):   #按照行获取每一行值
            print table.row_values(rownum)

        for colnum in range(ncols):  #按照列获取每一列值
            print table.col_values(colnum)
        cell1A=table.cell(0,0).value  #获取指定单元格的值
        print cell1A
        cell_A1 = table.row(0)[0].value  #获取指定单元格的值
        print cell_A1
  • python对xlsx文件写操作进行测试数据准备

    2017-07-20 18:28:27

    利用python的xlsxwriter模块处理
    1、pip install xlsxwriter安装xlsxwriter模块
    2、举例

       #encoding=utf-8
       import time  #导入time
       import xlsxwriter #导入xlsxwriter

        workbook = xlsxwriter.Workbook(tm+u'-发布模板.xlsx') 
         #生成20170720-发布模块.xlsx文件
        worksheet = workbook.add_worksheet('Sheet0')
         #创建Sheet0
        bold_format = workbook.add_format({'bold':True})
         #粗体格式
        data_format = workbook.add_format({'num_format':'#,##'})
         #数字格式0.00
        date_format =workbook.add_format({'num_format':'yyyy-mm'})
         #日期格式2017-07
         #写第一行标题
        worksheet.write('A1', u'盟友人员编号')
        worksheet.write('B1', u'月份')
        worksheet.write('C1', u'云闪付交易金额')
        worksheet.write('D1', u'云闪付可分润金额')
        worksheet.write('E1', u'拓展奖交易金额')
        worksheet.write('F1', u'拓展奖可分润金额')
        worksheet.write('G1', u'推广奖交易金额')
        worksheet.write('H1', u'推广奖可分润金额')
        worksheet.write('I1', u'园丁奖交易金额')
        worksheet.write('J1', u'园丁奖可分润金额')
        worksheet.write('K1', u'导师奖交易金额')
        worksheet.write('L1', u'导师奖可分润金额')

        #循环写10000行数据

        for i in range(2,10001):
            #print "A"+str(i)
            num=random.randint(1,12)
                               worksheet.write("A"+str(i),"S000000000000000122"+str(i))
            worksheet.write('B'+str(i), '2017-'+str(num),date_format)
            worksheet.write('C'+str(i), '100.10',data_format)
            worksheet.write('D'+str(i), '100.00',data_format)
            worksheet.write('E'+str(i), '200.00',data_format)
            worksheet.write('F'+str(i), '10.05',data_format)
            worksheet.write('G'+str(i), '300.12',data_format)
            worksheet.write('H'+str(i), '50.09',data_format)
            worksheet.write('I'+str(i), '12345.10',data_format)
            worksheet.write('J'+str(i), '5.55',data_format)
            worksheet.write('K'+str(i), '876.10',data_format)
            worksheet.write('L'+str(i), '100.00',data_format)
    #关闭sheet
           workbook.close()

       
Open Toolbar