• 技术文章 >常见问题 >Python常见问题

    python怎么调用word?

     Ly Ly2020-05-21 13:17:49原创3645

    使用python操作word

    有两种方式:

    1.使用win32com扩展包

    只对windows平台有效

    代码:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    # coding=utf-8

    import win32com

    from win32com.client import Dispatch, DispatchEx

    word = Dispatch('Word.Application')  # 打开word应用程序

    # word = DispatchEx('Word.Application') #启动独立的进程

    word.Visible = 0  # 后台运行,不显示

    word.DisplayAlerts = 0  # 不警告

    path = 'G:/WorkSpace/Python/tmp/test.docx'  # word文件路径

    doc = word.Documents.Open(FileName=path, Encoding='gbk')

    # content = doc.Range(doc.Content.Start, doc.Content.End)

    # content = doc.Range()

    print '----------------'

    print '段落数: ', doc.Paragraphs.count

    # 利用下标遍历段落

    for i in range(len(doc.Paragraphs)):

        para = doc.Paragraphs[i]

        print para.Range.text

    print '-------------------------'

    # 直接遍历段落

    for para in doc.paragraphs:

        print para.Range.text

        # print para  #只能用于文档内容全英文的情况

    doc.Close()  # 关闭word文档

    # word.Quit  #关闭word程序

    2.使用docx扩展包

    优点:不依赖操作系统,跨平台

    安装:

    1

    pip install python-docx

    代码:

    1

    2

    3

    4

    import docxdef read_docx(file_name):

        doc = docx.Document(file_name)

        content = '\n'.join([para.text for para in doc.paragraphs]) 

        return content

    创建表格

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    # coding=utf-8

    import docx

    doc = docx.Document()

    table = doc.add_table(rows=1, cols=3, style='Table Grid') #创建带边框的表格

    hdr_cells = table.rows[0].cells  # 获取第0行所有所有单元格

    hdr_cells[0].text = 'Name'

    hdr_cells[1].text = 'Id'

    hdr_cells[2].text = 'Desc'

     

    # 添加三行数据

    data_lines = 3

    for i in range(data_lines):

        cells = table.add_row().cells

        cells[0].text = 'Name%s' % i

        cells[1].text = 'Id%s' % i

        cells[2].text = 'Desc%s' % i

    rows = 2

    cols = 4

    table = doc.add_table(rows=rows, cols=cols)

    val = 1

    for i in range(rows):

        cells = table.rows[i].cells

        for j in range(cols):

            cells[j].text = str(val * 10)

            val += 1

    doc.save('tmp.docx')

    读取表格

    1

    2

    3

    4

    5

    6

    7

    8

    9

    # coding=utf-8import docx

    doc = docx.Document('tmp.docx')for table in doc.tables:  # 遍历所有表格

        print '----table------'

        for row in table.rows:  # 遍历表格的所有行

            # row_str = '\t'.join([cell.text for cell in row.cells])  # 一行数据

            # print row_str

            for cell in row.cells:        

               print cell.text, '\t',       

            print

    专题推荐:python
    上一篇:python如何做exe程序? 下一篇:python如何关闭文件?

    相关文章推荐

    • python怎么把xls文件导入?• Python中的ord()函数怎么使用?• python时间戳是啥意思?• python怎么判断是否为纯字母?• Python中的字典遍历有序吗?• python如何操作剪切板?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网