美文网首页
python操作word文档-3

python操作word文档-3

作者: Chaweys | 来源:发表于2020-12-28 09:18 被阅读0次

    #coding=utf-8
    import docx
    from docx.shared import Cm,Inches,Pt           #用来设置单元格内元素的宽高
    from docx.enum.section import WD_ORIENTATION   #用来设置章节的横向或纵向
    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT,WD_LINE_SPACING  #用来设置段落对齐方式
    from docx.shared import RGBColor               #用来设置字体颜色
    from docx.oxml.ns import qn                    #用来设置字体
    from docx.enum.table import WD_TABLE_ALIGNMENT
    from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT
    
    
    from docx.enum.style import WD_STYLE_TYPE
    
    
    doc=docx.Document()
    
    
    sections=doc.sections
    section=sections[0]                            #获取单个章节
    new_pagewidth,new_pageheight=section.page_height,section.page_width
    #设置三个参数
    section.orientation = WD_ORIENTATION.LANDSCAPE #设置页面方向为横向
    section.page_height=Cm(21)                     #设置页面高度21
    section.page_width=Cm(29)                      #设置页面宽度29
    
    
    #添加一个标题
    head=doc.add_heading(0)
    head.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER          #设置标题居中
    run=head.add_run("需要制作的文档")
    run.font.name=u'宋体'                                 #设置字体
    run._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体') #针对包含中文的字体设置
    run.font.size=Pt(24)                                  #设置字体大小
    run.font.color.rgb=RGBColor(0,0,0)                    #设置字体颜色
    
    
    #添加一个段落
    p=doc.add_paragraph()
    p.alignment=WD_PARAGRAPH_ALIGNMENT.RIGHT              #设置添加的段落右对齐
    run=p.add_run("2020年12月27日")
    run.font.name=u'宋体'                                 #设置字体
    run._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体') #针对包含中文的字体设置
    run.font.size=Pt(22)                                  #设置字体大小
    run.font.color.rgb=RGBColor(0,0,0)                    #设置字体颜色
    
    
    
    #添加表格,对表格内的字体格式设置
    colss=6 #定义表格的总列数
    table=doc.add_table(rows=1,cols=colss,style='Table Grid')   #添加一行六列的表格
    table.alignment=WD_TABLE_ALIGNMENT.CENTER                   #设置表格居中
    
    records=["第一列","第二列","第三列","第四列","第五列","第六列"]
    hdr_rows=table.rows[0].cells
    
    for i in range(colss):
        hdr_rows[i].paragraphs[0].paragraph_format.alignment=WD_TABLE_ALIGNMENT.CENTER  #设置单元格水平居中
        run=hdr_rows[i].paragraphs[0].add_run(records[i])       #给每个单元格添加文本
        run.font.name = u'宋体'                                 #设置字体
        run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')  #针对包含中文的字体设置
        run.font.size = Pt(22)                                  #设置字体大小
        run.font.color.rgb = RGBColor(0, 0, 0)                  #设置字体颜色
    
    
    '''
    out.txt
    123,456,789,234,567,151
    546,645,894,496,165,897
    897,987,354,899,123,945
    648,644,952,324,672,567
    '''
    
    with open("out.txt") as f:
        for line in f:
            result=line.split(',')
            cel_row=table.add_row().cells
            colss=6
            for i in range(colss):
                cel_row[i].paragraphs[0].paragraph_format.alignment=WD_TABLE_ALIGNMENT.CENTER  #设置单元格水平居中
                run=cel_row[i].paragraphs[0].add_run(result[i])          #给每个单元格添加文本
                run.font.name = u'宋体'                                  #设置字体
                run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')   #针对包含中文的字体设置
                run.font.size = Pt(22)                                   #设置字体大小
                run.font.color.rgb = RGBColor(0, 0, 0)                   #设置字体颜色
    
    
    
    
    
    
    #合并单元格
    '''
    table.cell(row1,col1).merge(table.cell(row2,col2))
    如果是cell(row1,col1)是cell(1,0),cell(row2,col2)是cell(1,2),那么合并的就是cell(1,0)、cell(1,1)、cell(1,2)三个单元格。
    '''
    #先添加两行,每个单元格留空
    for i in range(2):
        cel_row=table.add_row().cells
        cel_row[i].text=""
    
    
    table.cell(5,0).merge(table.cell(6,0))     #合并单元格:(5,0),(6,0)
    table.cell(5,0).text=""                    #合并后的单元格留空
    table.cell(5,0).paragraphs[0].paragraph_format.alignment=WD_TABLE_ALIGNMENT.CENTER          #设置合并后的单元格水平居中
    table.cell(5,0).paragraphs[0].paragraph_format.alignment=WD_CELL_VERTICAL_ALIGNMENT.CENTER  #设置合并后的单元格垂直居中
    run=table.cell(5,0).paragraphs[0].add_run("竖向合并")    #对合并的单元格写入字符
    run.font.name = u'宋体'                                  #设置字体
    run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')   #针对包含中文的字体设置
    run.font.size = Pt(10)                                   #设置字体大小
    run.font.color.rgb = RGBColor(0, 0, 0)                   #设置字体颜色
    
    
    
    
    table.cell(5,1).merge(table.cell(5,3))      #合并单元格:(5,1),(5,2),(5,3)
    table.cell(5,1).text=""                     #合并后的单元格留空
    table.cell(5,1).paragraphs[0].paragraph_format.alignment=WD_TABLE_ALIGNMENT.CENTER          #设置合并后的单元格水平居中
    table.cell(5,1).paragraphs[0].paragraph_format.alignment=WD_CELL_VERTICAL_ALIGNMENT.CENTER  #设置合并后的单元格垂直居中
    run=table.cell(5,1).paragraphs[0].add_run("水平合并")    #对合并的单元格写入字符
    run.font.name = u'宋体'                                  #设置字体
    run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')   #针对包含中文的字体设置
    run.font.size = Pt(15)                                   #设置字体大小
    run.font.color.rgb = RGBColor(0, 0, 0)                   #设置字体颜色
    
    
    
    doc.save("demo222.docx")
    
    demo-docx222.png

    相关文章

      网友评论

          本文标题:python操作word文档-3

          本文链接:https://www.haomeiwen.com/subject/ivvonktx.html