zoukankan      html  css  js  c++  java
  • python处理excel和word脚本笔记

    汇总报表

    import xlrd,xlsxwriter
    # 读取
    opwb=xlrd.open_workbook('7月下旬入库表.xlsx')
    opws=opwb.sheet_by_index(0)
    # opws=opwb.sheet_by_index('七月')
    tswb=xlsxwriter.Workbook("7月下旬入库表2.xls")
    tsws=tswb.add_worksheet('7月')
    # 按行遍历复制
    for i in range(opws.nrows):
        tsws.write_row('A'+str(i),opws.row_values(i-1))
    
    # 关闭并保存创建的表格
    tswb.close()
    

    最小读取表格

    import xlrd
    xlsx=xlrd.open_workbook('c:/s.xls')
    table=xlsx.sheet_by_index(0)
    print(table.cell_value(3,2) 
    

    最小创建表格

    import xlsxwriter as xlw
    test_workbook=xlw.Workbook("test2.xlsx")
    worksheet=test_workbook.add_worksheet('test_table')
    worksheet.write(0,0,'test')
    test_workbook.close()
    

    按行遍历复制(不带格式)

    from xlutils.copy import copy
    import xlrd,xlsxwriter
    
    xlsx=xlrd.open_workbook('7月下旬入库表.xlsx')
    table=xlsx.sheet_by_index(0)
    
    test_workbook=xlsxwriter.Workbook("7月下旬入库表2.xls")
    worksheet=test_workbook.add_worksheet('7月下旬入库表')
    
    for i in range(table.nrows):
        worksheet.write_row('A'+str(i),table.row_values(i-1))
    test_workbook.close() 
    

    xlutils带格式复制

    from xlutils.copy import copy
    import xlrd
    xlsx=xlrd.open_workbook("7月下旬入库表.xls",formatting_info=True)
    test_sheet=xlsx.sheet_by_index(0)
    
    new_excel=copy(xlsx)
    new_sheet=new_excel.get_sheet(0)
    new_excel.save('copy.xlsx') 
    

    xlsxwriter带格式复制

    import xlrd,xlsxwriter
    # 读取
    opwb=xlrd.open_workbook('7月下旬入库表.xlsx')
    opws=opwb.sheet_by_index(0)
    # opws=opwb.sheet_by_index('七月')
    # 创建,新版本xlsxwrite支持创建xls、xlsx
    tswb=xlsxwriter.Workbook("7月下旬入库表3.xls")
    tsws=tswb.add_worksheet('7月')
    
    bolds = tswb.add_format({'bold': True})
    dates = tswb.add_format({'num_format': 'yyyy/m/d'})
    
    tsws.write_column('A1',opws.col_values(0),dates)
    tsws.write_column('B1',opws.col_values(1))
    tsws.write_column('C1',opws.col_values(2))
    tsws.write_column('D1',opws.col_values(3))
    tsws.write_column('E1',opws.col_values(4),bolds)
    # 关闭并保存创建的表格
    tswb.close()
    

    python处理word

    from docx import Document
    from docx.enum.text import WD_ALIGN_PARAGRAPH
    from docx.shared import Pt  # 磅数
    from docx.oxml.ns import qn  # 中文格式
    # 以上是docx库中需要用到的部分
    
    import time
    
    price = input('请输入今日价格:')
    company_list = ['客户1', '客户2', '客户3', '客户4', '客户5', '客户6', '客户7', '客户8', '客户9', '客户10']
    
    today = time.strftime("%Y{y}%m{m}%d{d}", time.localtime()).format(y='年', m='月', d='日')
    # 获取今日时间,整理成“年-月-日”的格式
    
    for i in company_list:
        # 针对每个客户名生成不同文档
        document = Document()
    
        document.styles['Normal'].font.name = u'宋体'
        # 设置文档的基础字体
        document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
        # 设置文档的基础样式
    
    
        p1 = document.add_paragraph()
        # 初始化建立第一个自然段
        p1.alignment = WD_ALIGN_PARAGRAPH.CENTER
        # 对齐方式为居中,没有这句的话默认左对齐。
        run1 = p1.add_run('关于下达%s产品价格的通知' % (today))
        # 这里是第一段的内容
        run1.font.name = '微软雅黑'
        # 设置西文字体
        run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
        # 设置中文字体
        run1.font.size = Pt(21)
        # 设置字体大小为21磅
        run1.font.bold = True
        # 设置加粗
        p1.space_after = Pt(5)
        # 段后距离5磅
        p1.space_before = Pt(5)
        # 段前距离5磅
    
        p2 = document.add_paragraph()
        run2 = p2.add_run(i + ':')
        # 这里是对客户的称呼
        run2.font.name = '仿宋_GB2312'
        run2._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
        run2.font.size = Pt(16)
        run2.font.bold = True
    
        p3 = document.add_paragraph()
        run3 = p3.add_run('    根据公司安排,为提供优质客户服务,我单位拟定了今日价格为%s元,特此通知。' % price)
        run3.font.name = '仿宋_GB2312'
        run3._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
        run3.font.size = Pt(16)
        run3.font.bold = True
    
        p4 = document.add_paragraph()
        p4.alignment = WD_ALIGN_PARAGRAPH.CENTER
        run4 = p4.add_run('(联系人:小杨    电话:18888888888)')
        run4.font.name = '仿宋_GB2312'
        run4._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
        run4.font.size = Pt(16)
        run4.font.bold = True
    
        document.save('%s-价格通知.docx' % i)
    # 以“客户名-价格通知”作为文件名保存 
    

    参考:

  • 相关阅读:
    oracle安装过程中遇到的问题
    HttpContext.Current 的缺陷
    oracle 复杂语句
    .net 中 ref out params的区别
    查看修改mysql编码方式[转载]
    Oracle 中的dual是什么东西
    KindEditor问题汇总【不定时更新】
    java中import、package作用和用法
    [笔记]: 哈弗曼树(最优二叉树) 标签: 二叉树 2017-05-17 16:38 34人阅读 评论(0) 收
    [noip 2004普及组] FBI树 标签: 二叉树递归 2017-05-17 14:29 40人阅读 评论(0)
  • 原文地址:https://www.cnblogs.com/enuff/p/xlswriter.html
Copyright © 2011-2022 走看看