日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 將Excel轉Word的示例

瀏覽:32日期:2022-06-26 16:02:08

在日常工作中,Python在辦公自動化領域應用非常廣泛,如批量將多個Excel中的數據進行計算并生成圖表,批量將多個Excel按固定格式轉換成Word,或者定時生成文件并發送郵件等場景。本文主要以一個簡單的小例子,簡述Python在Excel和Word方面進行相互轉換的相關知識點,謹供學習分享使用,如有不足之處,還請指正。

相關知識點

本文主要是將Excel文件通過一定規則轉換成Word文檔,涉及知識點如下所示:

xlrd模塊:主要用于Excel文件的讀取,相關內容如下:

xlrd.open_workbook(self.excel_file) 打開Excel文件并返回文檔對象,參數為Excel的完整路徑 book.sheet_by_name(self.sheet_name) 通過名稱獲取對應的sheet頁,并返回sheet對象 sheet.nrows sheet頁的有效行數 sheet.ncols sheet頁的有效列數 sheet.row_values(0) 返回Excel中對應sheet頁的第一行的值,以數組返回 sheet.cell_value(row, col) 返回某一個單元格的值

python-docx模塊:主要操作Word文檔,如:表格,段落等相關,相關內容如下所示:

Document word的文檔對象,代表整個word文檔 doc.sections[0] 獲取章節 doc.add_section(start_type=WD_SECTION_START.CONTINUOUS) 添加連續章節 doc.add_heading(third, level=2) 增加標題,level表示級別,如二級標題,返回標題對象 doc.add_paragraph(text=’’, style=None) 增加段落,返回段落對象 doc.add_table(rows=4, cols=5) 增加表格,并返回表格對象 doc_table. 設置表格樣式 doc_table.rows[0].cells[1].merge(doc_table.rows[0].cells[4]) 合并單元格 doc_table.rows[3].cells 獲取表格某一行所有單元格,以數組形式返回 head_cells[0].width = Cm(1.9) 設置列寬,單位cm doc_table.rows[i].cells[j].vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER 表格內容垂直居中 doc_table.add_row() 新增行,并返回行對象 插件安裝

插件可以在pycharm的terminal面板下進行安裝。python-docx安裝命令為:pip install python-docx

xlrd安裝命令為:pip install xlrd 如下所示:

python 將Excel轉Word的示例

數據源文件

數據源是一系列格式相同的Excel文件,共七列,其中第1列要按【/】進行截取拆分,格式如下:

python 將Excel轉Word的示例

核心代碼

本文核心源碼,主要分三部分:

導入相關模塊包,如下所示:

import xlrdfrom docx import Documentfrom docx.enum.section import WD_ORIENTATIONfrom docx.enum.text import WD_PARAGRAPH_ALIGNMENTfrom docx.shared import Pt, Cm, RGBColorfrom docx.oxml.ns import qnfrom docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT

讀取Excel,如下所示:

def read_excel(self): '''讀取Excel''' book = xlrd.open_workbook(self.excel_file) sheet = book.sheet_by_name(self.sheet_name) nrows = sheet.nrows # 行數 ncols = sheet.ncols # 列數 datas = [] # 存放數據 # 第一列 標題 keys = sheet.row_values(0) for row in range(1, nrows): data = {} # 每一行數據 for col in range(0, ncols):value = sheet.cell_value(row, col) # 取出每一個單元格的數據# 替換到特殊字符value = value.replace(’<’, ’’).replace(’>’, ’’).replace(’$’, ’’)data[keys[col]] = value# 截取第一列元素if col == 0: first = ’’ # 截取元素 第1 second = ’’ # 截取元素 第2 third = ’’ # 截取元素 第3 arrs = value.lstrip(’/’).split(’/’) # 去掉第一個/ 然后再以/分組 if len(arrs) > 0: if len(arrs) == 1: first = arrs[0] second = first third = second elif len(arrs) == 2: first = arrs[0] second = arrs[1] third = second elif len(arrs) == 3: first = arrs[0] second = arrs[1] third = arrs[2] else: first = arrs[0] second = arrs[1] third = arrs[2] else: first = value.ltrip(’/’) second = first third = second data[’first’] = first data[’second’] = second data[’third’] = third# 截取第一列結束 datas.append(data) return datas

生成Word部分:

def write_word(self, datas): '''生成word文件''' if len(datas) < 1: print(’Excel沒有內容’) return # 定義word文檔對象 doc = Document() # 添加橫向 section = doc.sections[0] # doc.add_section(start_type=WD_SECTION_START.CONTINUOUS) # 添加橫向頁的連續節 section.orientation = WD_ORIENTATION.LANDSCAPE page_h, page_w = section.page_width, section.page_height section.page_width = page_w # 設置橫向紙的寬度 section.page_height = page_h # 設置橫向紙的高度 # 設置字體 doc.styles[’Normal’].font.name = u’宋體’ doc.styles[’Normal’]._element.rPr.rFonts.set(qn(’w:eastAsia’), u’宋體’) # 獲取第3部分(部門) 并去重 data_third = [] for data in datas: third = data[’third’] if data_third.count(third) == 0:data_third.append(third) for third in data_third: h2 = doc.add_heading(third, level=2) # 寫入部門,二級標題 run = h2.runs[0] # 可以通過add_run來設置文字,也可以通過數組來獲取 run.font.color.rgb = RGBColor(0, 0, 0) run.font.name = u’宋體’ doc.add_paragraph(text=’’, style=None) # 增加空白行 換行 # 開始獲取模板 data_template = [] for data in datas:if data[’third’] == third: template = {’first’: data[’first’], ’模板名稱’: data[’模板名稱’]} if data_template.count(template) == 0: data_template.append(template) # 獲取模板完成 # 遍歷模板 for template in data_template:h3 = doc.add_heading(template[’模板名稱’], level=3) # 插入模板名稱,三級標題run = h3.runs[0] # 可以通過add_run來設置文字,也可以通過數組來獲取run.font.color.rgb = RGBColor(0, 0, 0)run.font.name = u’宋體’doc.add_paragraph(text=’’, style=None) # 換行data_table = filter( lambda data: data[’third’] == third and data[’模板名稱’] == template[’模板名稱’] and data[’first’] == template[’first’], datas)data_table = list(data_table)# 新增表格 4行5列doc_table = doc.add_table(rows=4, cols=5)doc_table. doc_table.style.font.size = Pt(9)doc_table.style.font.name = ’宋體’# 合并單元格 賦值doc_table.rows[0].cells[1].merge(doc_table.rows[0].cells[4])doc_table.rows[1].cells[1].merge(doc_table.rows[1].cells[4])doc_table.rows[2].cells[1].merge(doc_table.rows[2].cells[4])doc_table.rows[0].cells[0].text = ’流程名稱:’doc_table.rows[0].cells[1].text = data_table[0][’模板名稱’]doc_table.rows[1].cells[0].text = ’使用人:’doc_table.rows[1].cells[1].text = data_table[0][’first’]doc_table.rows[2].cells[0].text = ’流程說明:’doc_table.rows[2].cells[1].text = data_table[0][’流程說明’]# 設置標題head_cells = doc_table.rows[3].cells # 前面還有三行,特殊處理head_cells[0].text = ’節點’head_cells[1].text = ’節點名’head_cells[2].text = ’處理人員’head_cells[3].text = ’處理方式’head_cells[4].text = ’跳轉信息’# 設置列寬head_cells[0].width = Cm(1.9)head_cells[1].width = Cm(4.83)head_cells[2].width = Cm(8.25)head_cells[3].width = Cm(2.54)head_cells[4].width = Cm(5.64)# 第1 列水平居中,并設置行高,所有單元格內容垂直居中for i in range(0, 4): # 水平居中 p = doc_table.rows[i].cells[0].paragraphs[0] p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER doc_table.rows[i].height = Cm(0.6) # 行高 # 垂直居中 for j in range(0, 5): doc_table.rows[i].cells[j].vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# 生成表格并填充內容row_num = 0for data in data_table: row = doc_table.add_row() row_cells = row.cells row_cells[0].text = str(row_num + 1) # 序號,需要轉換成字符串 row_cells[1].text = data[’節點名稱’] row_cells[2].text = data[’審批人員’] row_cells[3].text = data[’審批方式’] row_cells[4].text = ’’ # 水平居中 p = row_cells[0].paragraphs[0] p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER row.height = Cm(0.6) # 行高 # 垂直居中 for j in range(0, 5): row_cells[j].vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER row_num = row_num + 1doc.add_paragraph(text=’’, style=None) # 換行 doc.save(self.word_file)

以上就是python 將Excel轉Word的示例的詳細內容,更多關于python Excel轉Word的資料請關注好吧啦網其它相關文章!

標簽: python
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
青青伊人久久| 视频一区在线视频| 久久国产麻豆精品| 在线精品观看| 亚洲精品在线国产| 日本在线不卡视频一二三区| 亚洲欧美一级| **爰片久久毛片| 久久不卡日韩美女| 高清久久一区| 三级小说欧洲区亚洲区| 欧美网站在线| 男人的天堂亚洲一区| 日韩在线麻豆| 国产精品亚洲综合色区韩国| 麻豆精品蜜桃视频网站| 日韩av片子| 婷婷成人综合| 久久夜夜操妹子| 日韩一级网站| 日本午夜精品一区二区三区电影| 国产精品久久免费视频| 国产成人精品一区二区三区免费| 91精品啪在线观看国产18 | 欧美va亚洲va日韩∨a综合色| 日韩不卡视频在线观看| 亚洲一区欧美二区| 日韩不卡免费视频| 国产一区福利| 欧美专区18| 国产精品一站二站| 国产色播av在线| 欧美日韩国产亚洲一区| 日韩精品免费视频一区二区三区 | 国产调教精品| 久久久久午夜电影| 亚洲精品激情| 久久影院午夜精品| 丝袜美腿高跟呻吟高潮一区| 国产日韩一区| 亚洲一本视频| 国产亚洲人成a在线v网站| 午夜av不卡| 午夜久久av| 青青青免费在线视频| 欧美特黄一区| 国产精品videossex久久发布| 波多视频一区| 日韩三区四区| 欧美13videosex性极品| 亚洲一级淫片| 精品国产第一福利网站| 婷婷综合国产| 久久精品欧美一区| 国产精品亚洲人成在99www| 91精品国产调教在线观看| 91亚洲精品视频在线观看| 久久免费高清| 国产精品久久国产愉拍| 亚洲免费高清| 国产精品亚洲一区二区在线观看| 亚洲国产专区校园欧美| 国产探花一区二区| 黄色亚洲大片免费在线观看| 免费看一区二区三区| 老鸭窝毛片一区二区三区| 国产精品成人a在线观看| 亚洲欧洲日韩| 亚洲电影在线| 国产成人精品免费视| 亚洲制服一区| 91精品国产成人观看| 久久不卡国产精品一区二区| 亚洲一区欧美激情| 肉色欧美久久久久久久免费看 | 亚洲欧美久久久| 亚洲深夜视频| 国产精品片aa在线观看| 美女国产一区| 99久久精品费精品国产| 国产精品网址| 亚洲乱码视频| 99视频在线精品国自产拍免费观看| 国产精品成人a在线观看| 久久激五月天综合精品| 丝袜国产日韩另类美女| 极品裸体白嫩激情啪啪国产精品| 美女免费视频一区| 欧美午夜网站| 天堂成人免费av电影一区| 久久久夜精品| 麻豆网站免费在线观看| 麻豆极品一区二区三区| 奇米亚洲欧美| 五月亚洲婷婷 | 国产探花在线精品一区二区| 中文字幕一区二区三区四区久久| 欧美1区2区3区| 欧美日韩视频网站| 国产一区调教| 国产一区二区三区天码| 久久精品99国产精品日本| 免费国产亚洲视频| 在线亚洲激情| av不卡在线| 2023国产精品久久久精品双| 成人精品亚洲| 欧美日韩在线二区| 精精国产xxxx视频在线播放| 黑人精品一区| 中文字幕高清在线播放| 97精品97| 欧美aa在线观看| 欧产日产国产精品视频| 一本大道色婷婷在线| 精品国产免费人成网站| 国产成人久久| 成人国产精品一区二区网站| 色婷婷色综合| 日韩欧美精品综合| 亚洲a一区二区三区| 999国产精品视频| 不卡在线一区| 夜夜嗨一区二区三区| 亚洲欧美视频| 亚洲制服一区| 日本欧美韩国一区三区| 久久激情五月激情| 免费观看亚洲天堂| 国产精品99一区二区三| 鲁鲁在线中文| 久久久夜夜夜| 欧美日韩精品一本二本三本 | 欧美一区二区三区久久| 国产精品videossex久久发布 | 欧美aa国产视频| 蜜桃久久av| 日韩不卡一二三区| 久久97久久97精品免视看秋霞| 日韩成人av影视| 国产精品久久久久久久久久白浆| 久久精品女人| 日韩一区三区| 99在线|亚洲一区二区| 影音先锋久久精品| 午夜国产一区二区| 婷婷成人av| 久久不卡日韩美女| 丝袜美腿诱惑一区二区三区| 欧美特黄一区| 日本午夜精品| 岛国av在线播放| 亚洲香蕉网站| 日本伊人久久| 欧美精品第一区| 久久国产免费| 日韩欧美四区| 国产精品久久久久久久久妇女| 99久久www免费| 日韩综合一区二区三区| 精品三级久久久| 女人天堂亚洲aⅴ在线观看| 在线日韩成人| 久久久精品国产**网站| 午夜国产欧美理论在线播放| 91精品美女| 日韩电影免费网址| 中文无码日韩欧| 国产在线一区不卡| 欧美日韩激情| 久久精品xxxxx| 99久久亚洲精品| 亚洲精品在线a| 日韩福利一区| 亚州av日韩av| 日韩一区二区三区在线免费观看| 免费日本视频一区| 国产福利91精品一区二区| 亚洲综合三区| 福利视频一区| 日韩欧美四区| 欧美日韩精品一区二区视频| 日韩亚洲精品在线观看| 欧洲av一区二区| 日本午夜精品久久久久| 国产v综合v| 欧美日一区二区在线观看| 99精品小视频| 久久av超碰| 亚洲三区欧美一区国产二区| 久久在线91| 亚洲三级在线| 久久中文亚洲字幕| 国产精品一区三区在线观看| 欧美日韩激情| 国产成人精品福利| 欧美日韩亚洲国产精品| 9色精品在线| 日韩深夜视频| 国产精品午夜一区二区三区|