python之 第一个问题

终极目标,将表格化的树状结构搞成word文档的标题树状结构。
怎么说呢,思路都是一样的,只不过呈现方式不一样,我想用word文档里面的目录更加容易看清楚,而用Excel表格不是很容易看,但是用手动的话工作量太大了。所以用python搞一下。


功能拆分:
1.怎么读取Excel.并获取文字流。
2.怎么往word文档里面写东西,并且设置标题格式。

工具:python ,vscode.

思路:看两个例子,知道怎么新建一个doc文档,也知道怎么读取excel表格的东西。那么就把表格里面的东西填到word里面就行了。
肯定用到循环的东西,注意python循环的的写法就行,然后就是编程思路,也就是怎么按照机器的写法去批量化的思路。
比如,两个for循环,从左往右,从上到下,什么时候设为一标题,什么时候设为2标题。这个说不清楚,代码可以搞清楚。


注意事项:

  1. 用到两个包,xlrd.docx.但是只能用py2.7。虽然vscode可以在左下角切换版本,但是还是用cmd比较好。
  2. Python里面对中文字符比较敏感
  3. 缩进是Python里面的一种语法,必须有章法。
  4. 调试的时候在vscode里面需要按F5然后进入调试状态,可以设置断点。
    代码如下:
# -*- coding:UTF-8 -*-
import xlrd
from docx import Document
file = r'C:\Users\16143\Desktop\python\test.xls'
workbook = xlrd.open_workbook(filename=file)
sheetUse = workbook.sheet_by_name(u'项目管理')
nrows = sheetUse.nrows #获取有效行数。
ncols = sheetUse.ncols #获取有效列数。

document = Document()  #创建文档

for j in range(nrows):#行数
    for i in range(ncols-1):#列数  for循环上有冒号
        celluse = sheetUse.cell_value(j,i) #而且for循环下面的东西必须有缩进
        
        if celluse != u'' and i ==0:
            document.add_heading(sheetUse.cell_value(j,4), level=1)
            if sheetUse.cell_value(j,5)!=u'':
                document.add_paragraph(
                sheetUse.cell_value(j,5)
                )
            break           
        elif celluse != u'' and i==1:
            document.add_heading(sheetUse.cell_value(j,4),level=2)
            if sheetUse.cell_value(j,5)!=u'':
                document.add_paragraph(
                sheetUse.cell_value(j,5)
                )
            break   
        elif celluse != u'' and i==2:
            document.add_heading(sheetUse.cell_value(j,4),level=3)
            if sheetUse.cell_value(j,5)!=u'':
                document.add_paragraph(
                sheetUse.cell_value(j,5)
                )
            break   
        elif celluse !=u'' and i==3:
            document.add_heading(sheetUse.cell_value(j,4),level=4)
            document.add_paragraph(
                sheetUse.cell_value(j,5)
            )
            break
        else:
            #document.add_heading("over",level=3)
            print("hellow")
            continue   

document.save('demo.docx')

当然里面遇到的艰辛和坑就不说了,反正最后做出来了,很不错。由于数据敏感,不放上来了,等下次有自己的数据再说。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章