excel转word_60行代码实现Excel转Word...

前阵子朋友托我帮忙把Excel试题表格处理一下,

打印之后拿来复习。

我想,其实转一下翻转表格打印不就完事了。

对方答曰:

表格打印之后看起来不太舒服,

背题效率低。

.........

PS:朋友哪来这么多的要求呀。

PPS:他一定是个好人!


于是,

大概花了半个小时,

写个点Python代码实现把Excel转成了Word文档。

大概,表格长这样。

6e585fdc01f8b48a68746e75e2da37b3.png

最终效果图,大概是这样的。

9c555d55a62919ddb2d73143a0d6fb81.png

公众号回复"Excel转Word"获取代码。


蛋疼,

有什么好获取的。

直接拿去。

Python 3.7  环境 

同时需要 xlrd + python-docx 包

pip install xlrd -i https://pypi.mirrors.ustc.edu.cn/simple/pip install python-docx -i https://pypi.mirrors.ustc.edu.cn/simple/

全部代码:

import xlrdimport jsonimport osfrom docx import Documentclass ExcelInfo:    # sheet表格名字,不填入默认取0    sheet_name = None    # 文件路径    file_path = ""    # 标题字段所在的列数组,会将对应列内容组装成标题    title_fields = [1]    # 答案选项开始列索引Id,包含当前列    op_start_index = 2    # 答案选项结束列索引Id,不包含当前列    op_end_index = 7    # 答案所在的列    answer_index = 7def convert_to_word(excel_info: ExcelInfo):    file_name = excel_info.file_path if excel_info.file_path else "sample.xlsx"    print("convert %s start!" % file_name)    workbook_obj = xlrd.open_workbook(f'{file_name}')    if excel_info.sheet_name:        sheet_data = workbook_obj.sheet_by_name(excel_info.sheet_name)    else:        sheet_data = workbook_obj.sheet_by_index(0)    data_num = 0    document = Document()    document.add_heading(file_name)    for i in range(1, sheet_data.nrows):        row_data = sheet_data.row_values(i)        data_num = data_num + 1        title_text = ""        for title_index in excel_info.title_fields:            title_text = title_text + row_data[title_index] + "  "        title = f"{data_num}. {title_text}:"        options = []        for op_id in range(excel_info.op_start_index, excel_info.op_end_index):            op_value = row_data[op_id]            if op_value is None or (type(op_value) != float and len(op_value) == 0):                break            options.append(op_value)        paragraph = document.add_paragraph(title)        for op_num in range(0, len(options)):            op_text = "%s. %s" % (chr(65+op_num), options[op_num])            document.add_paragraph(op_text)        ans_text = row_data[excel_info.answer_index]        ans = f"\n\n正确答案:【{ans_text}】\n\n"        document.add_paragraph(ans)        document.add_paragraph()    document.save("%s.docx" % file_name)    print("convert %s success!" % file_name)excel_info = ExcelInfo()convert_to_word(excel_info)

PS:懒得写注释....

好了,

完事。


感觉回头改改上线成小程序 +网站?

嘿嘿嘿。

晚安了。

如何将excel表格换成word文档.doc 如何将excel表格换成word文档? Excel强大的制表功能让很多办公一族都忘不了它的方便与实用。可是在一些情况下,我们必须将Excel表格换成Word文档。当前普遍的做法是:先用Excel做好表格,再把表粘到Word里。可是粘到Word里后表的格式全变了,还得重新进调试,费时又费力。其实,完全可以按下述方法来轻松换。   首先,用Excel编辑好一个表格,然后点击“文件”→“另存为web页”。web页就是网页文件,在“保存选项”处把“保存整个工作簿”调整成“选择:工作表”,把默认文件名“page.htm”根据实际情况改成你所需要的名字,如:“工作表.htm”,再点击“保存”。注意,在改名时绝对不可以把后面的.htm去掉,只要改“.”前面的部分就可以了。   找到刚才保存好的“工作表.htm”,如果你所安装的操作系统是WindowsXP或Windows2000,可以在文件上面直接点击鼠标右键,选择“打开方式”最下面的“打开程序”选项,在列表中找到“Word”,选中并确定。如果你所使用的操作系统是windows98,则操作方法略有不同,需要在“工作表.htm”上按住shift键的同时点击鼠标右键,之后再进上述操作。   用Word程序打开该文件后,不要做任何编辑操作,直接点击“文件”→“另存为”,把文件名改成“工作表Word版”,把保存类型选成“Word文档”,再点击“保存”即可。   现在再打开刚才保存的“工作表word版”文件看看,是不是换得很完美呢? Word表格处理技巧 Word表格处理技巧 1 文字巧妙换成表格 通常大家制作表格时,都是采用表格和边框工具来绘制表格,或者利用“表格→插入→表格”命令来定制表格,请问如已输入了文字,则有没有办法让文字快速产生表格呢? 答:有,可以用Word提供的表格与文字之间的相互换功能完成。具体方法是这样: (1)按照自己的计划先将表格中的各项内容输入Word文件中,在这需注意的是,一定要利用一种特别的分隔符隔开准备产生表格列线的文字内容,该分隔符可以是逗号、制表符、空格或其他字符。 (2)选中需产生表格的文字内容,在菜单栏单击“表格→换→文本换成表格”命令,在弹出的对话框中的“文字分隔符位置”选项中选逗号(一定要和输入表格内容时的分隔符一致),同时按所要的表格形式对其他选项做适当的调整。 2 用“+”、“-”号巧制表格 表格制作一般的Word用户都会,但如果只利用键盘上的“+”号和“-”号来快速完成表格制作,可能很多朋友都不会,它的具体操作方法又是如何进? 答:利用键盘上的“+”与“-”号制作表格,有时会给我们带来更高的效率。在制作前首先得明白“+”号表示下面将产生一列线条,而“-”号起到连线的作用,其具体制作方法是:首先在要插入表格的地方输入“+”号,用来制作表格顶端线条,然后再输入“-”号,用来制作横线(也可以连续输入多个“-”号,“-”号越多表格越宽),接着再输入一些“+”号(“+”号越多,列越多)。完成后再按回车键,便可马上得到一个表格。 小提示:用此方法制作出的表格只有一,若需制作出多的表格,则可将光标移到表格内最后一个回车符号前,按“Tab”键或回车键(Enter),即可在表格后插入。 3 轻松微调列宽度 在Word中制作表格时,有时需要对列宽度进一些微调,请问除了进表格属性外,有没有其他更方便的方法呢? 答:在进Word表格编辑时,如果要知道或列的宽度,只需在按住鼠标左键调的同时按下右键,标尺上(调整时会在垂直标尺上显示,而在调整列时会在水平标尺上显示)就会显示出或列的尺度。 小提示:此时表格标尺的精确度为0.01字符。 4 表格列宽度调整技巧 表格在制作完成后常需进一些调整,而在调整中有没有技巧呢? 答:技巧当然有,下面就给大家介绍一下如何对表格列宽度进调整的技巧。 首先选中要调整的或列,并在选择区域上单击鼠标右键,在弹出菜单中选择“表格属性”选项,然后再根据实际情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值