> 文章列表 > Word及Excel文档的Python脚本处理

Word及Excel文档的Python脚本处理

Word及Excel文档的Python脚本处理

第一部分. Openpyxl部分:

1. 使用安装openpyxl的正确的指令是:

A. pip install openpyxl

B. install openpyxl

C. setup openpyxl

D.pip setup openpyxl

2. 代码如下:

from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet("MySheet")
其正确解释:
A.在最前端插入新的工作表MySheet
B.在末尾插入新的工作表MySheet

3. 代码如下(多选):

source = wb.active
target = wb.copy_worksheet(source)
其正确解释:

A. 在多个工作簿中之间,复制创建工作表的副本

B. 在单个工作簿中复制创建工作表的副本

C.如果工作簿以只读 或者只写 模式打开,则无法复制工作表

4.看下方代码:

>>> for x in range(1,101):

...        for y in range(1,101):

...            ws.cell(row=x, column=y)

其正确解释:

A.将会在内存中创建100x100个空单元格.

B. 将会在内存中创建101x101个空单元格.

C. 将会在文件中创建100x100个空单元格.

D. 将会在文件中创建101x101个空单元格.

5.看下方代码:

>>> cell_range = ws['A1':'C2']

其正确解释:

A.读取A1及C2两个单元格.

B.读取A1至C2一个区域,共6个单元格.

C.读取A1至C2一个区域,共4个单元格.

D.读取A1至C1一个区域,共2个单元格.

6.看下方代码:

for row in ws.values:

     for value in row:

          print(value)

其正确解释:

A.获取工作表中的所有单元格的值.
B.获取工作薄中的所有单元格值.
C.获取工作表中的所有单元格.
7.代码如下(多选):>>> c.value = 'hello, world'

>>> print(c.value)

'hello, world'

>>> d.value = 3.14

>>> print(d.value)

3.14

其正确解释:

A.得到一个单元格,给他赋值;然后再打印此单元格的值。
B.单元格的值可以为字符串,也可以为数值。
C.value值包括单元格的样式:字体颜色粗细等

8.代码如下:

>>> wb = Workbook()

>>> wb.save('balances.xlsx')


其正确解释:
A.这个操作将保存成一个文件.
B.这个操作将会覆写当前目录下已经存在的同名文件而不做出任何提示.

C.另存指令可以写成wb.saveAs('balances.xlsx').


9.代码如下:

>>> ws1 = wb.active

>>> ws1.title = "htzd"

>>>

>>> for row in range(1, 40):

...     ws1.append(range(60))


其正确解释:
A.工作表中创建了40行60列单元格.
B.工作表中创建了40行59列单元格.
C.工作表中创建了39行60列单元格.

D.工作表中创建了39行59列单元格

10.代码如下:

>>> from openpyxl import load_workbook

>>> wb2 = load_workbook('test.xlsx')

>>> print wb2.sheetnames

最后一行代码正确解释:

A.打印出所有工作表的名称.
B.打印出默认工作表的名称.
C.打印出工作簿名称.

11.代码如下(多选):
wb=Workbook()
ws=wb.active
rg=ws["A1":"C2"]
print(rg)
for r in rg:
        print(r)

其正确解释:
A.打印出的rg,是一个元组.直接元素有2个.
B.打印出的r,也是一个元组.每个r,直接元素有3个.
C.打印出的rg,是一个列表. 直接元素有2个.
D.打印出的r,也是一个列表. 每个r,直接元素有3个.

第二部分. Openpyxl部分:

1.代码如下:

from docx import Document

document = Document()

其正确解释:

A.新建一个空白默认Word文档.

B.新建一个空白默认Excel文档.

C.新建一个空白默认PPT文档.

D.新建一个空白记事本文档.

2.给文档增加一个段落,段落文字为:htzd.

其正确代码:

A.paragraph = document.add('htzd')
B.paragraph = document.addparagraph('htzd')
C.paragraph = document.addParagraph('htzd')
D.paragraph = document.add_paragraph('htzd')

3. 给文档增加一个标题,段落文字为:htzd.

其正确代码:

A.paragraph = document.add('htzd')
B.document.add_heading('htzd', level=2)
C.document.add_heading('htzd')
D.paragraph = document.add_paragraph('htzd')

4. 给文档增加一个分页.

其正确代码:

A.document.add_page_break()
B.document.page_break()
C.document.add_page()
D.document.add_break()

5.给文档增加一个3行4列的表格,总共有12个单元格.

其正确代码:

A.table = document.add_table(row=3, col=4)
B.table = document.addtable(rows=3, cols=4)
C.table = document.add_table(rows=3, cols=4)
D.table = document.table(rows=3, cols=4)

6.给Word表格的2行3列单元格赋一个文本’htzd’

其正确代码:

A.table.cell(1, 2).text=’htzd’
B.table.cell(2, 3).text=’htzd’
C.table.cell(3, 4).text=’htzd’
D.table.cell(5, 6).text=’htzd’

7.给文档增加一张图片,图片名称为’htzd.png’,宽度1.0英寸.

其正确代码:

A.

from docx.shared import inches

document.add_picture('htzd.png', width=inches(1.0))

B.

from docx.shared import Inches

document.add_picture('htzd.png', width=Inches(1.0))

C.

from docx.shared import Inches

document.addpicture('htzd.png', width=Inches(1.0))

D.

from docx.shared import Inches

document.picture('htzd.png', width=Inches(1.0))

第三部分.应用部分:

1.读下方课堂演示过的代码:

import os

import openpyxl

from openpyxl import Workbook

rootDir=os.getcwd()

wb=Workbook()

ws = wb.active

os.chdir(os.getcwd()+"\\\\xls")

xlsDir=os.getcwd()

rIndex=1

for entry in os.scandir():

    if entry.is_file and entry.name.endswith('.xlsx'):

        print(entry.name)

        ws["A"+str(rIndex)]=entry.name.rstrip('.xlsx')

        rIndex+=1

wb.save(rootDir+"\\\\结果.xlsx")

简要说明上分代码的含义:

2.读下方课堂演示过的代码:

from docx import Document

import os

import openpyxl

from openpyxl import Workbook

rootDir=os.getcwd()

doc=Document(rootDir+"\\\\tmp\\\\student.docx")

ts=doc.tables[0]

wb=openpyxl.load_workbook(rootDir+"\\\\student\\\\所有学生成绩.xlsx")

ws=wb.worksheets[0]

for r in range(0,62):

        courseNum=0

        bRowOK=False

        stuName=ws.cell(row=6+r,column=4).value      

        for m in range(0,2):

               if(bRowOK):

                       break

               for n in range(0,6):

                       if(bRowOK):

                               break

                       if(bool(ws.cell(row=4,column= 5+m*6+n).value)):

                               ts.cell(m*2,n).text=ws.cell(row=4,column=5+m*6+n).value

                       else:

                               ts.cell(m*2,n).text=""

                       if(bool(ws.cell(row=r+6,column=5+m*6+n).value)):

                               ts.cell(m*2+1,n).text=ws.cell(row=r+6,column=5+m*6+n).value

                       else:

                               ts.cell(m*2+1,n).text=""

                       courseNum+=1

                       if(courseNum>=9):

                               bRowOK=True           

        longName="{0:0>2}".format(r+1)+"-"+stuName+".docx"

        p=doc.paragraphs[0]

        p.text=stuName+"成绩表"

        print(longName,"√")

        doc.save(rootDir+"\\\\docx\\\\"+longName)

简要说明上分代码的含义: