加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python处理EXCEL

发布时间:2020-12-20 10:54:32 所属栏目:Python 来源:网络整理
导读:汇总报表 import xlrd,xlsxwriter# 读取opwb=xlrd.open_workbook('7月下旬入库表.xlsx')opws=opwb.sheet_by_index(0)# opws=opwb.sheet_by_index('七月')tswb=xlsxwriter.Workbook("7月下旬入库表2.xls")tsws=tswb.add_worksheet('7月')# 按行遍历复制for i

汇总报表

import xlrd,xlsxwriter
# 读取
opwb=xlrd.open_workbook('7月下旬入库表.xlsx')
opws=opwb.sheet_by_index(0)
# opws=opwb.sheet_by_index('七月')
tswb=xlsxwriter.Workbook("7月下旬入库表2.xls")
tsws=tswb.add_worksheet('7月')
# 按行遍历复制
for i in range(opws.nrows):
    tsws.write_row('A'+str(i),opws.row_values(i-1))

# 关闭并保存创建的表格
tswb.close()

最小读取表格

import xlrd
xlsx=xlrd.open_workbook('c:/s.xls')
table=xlsx.sheet_by_index(0)
print(table.cell_value(3,2)

最小创建表格

import xlsxwriter as xlw
test_workbook=xlw.Workbook("test2.xlsx")
worksheet=test_workbook.add_worksheet('test_table')
worksheet.write(0,'test')
test_workbook.close()

按行遍历复制(不带格式)

from xlutils.copy import copy
import xlrd,xlsxwriter

xlsx=xlrd.open_workbook('7月下旬入库表.xlsx')
table=xlsx.sheet_by_index(0)

test_workbook=xlsxwriter.Workbook("7月下旬入库表2.xls")
worksheet=test_workbook.add_worksheet('7月下旬入库表')

for i in range(table.nrows):
    worksheet.write_row('A'+str(i),table.row_values(i-1))
test_workbook.close()

xlutils带格式复制

from xlutils.copy import copy
import xlrd
xlsx=xlrd.open_workbook("7月下旬入库表.xls",formatting_info=True)
test_sheet=xlsx.sheet_by_index(0)

new_excel=copy(xlsx)
new_sheet=new_excel.get_sheet(0)
new_excel.save('copy.xlsx')

xlsxwriter带格式复制

import xlrd,xlsxwriter
# 读取
opwb=xlrd.open_workbook('7月下旬入库表.xlsx')
opws=opwb.sheet_by_index(0)
# opws=opwb.sheet_by_index('七月')
# 创建,新版本xlsxwrite支持创建xls、xlsx
tswb=xlsxwriter.Workbook("7月下旬入库表3.xls")
tsws=tswb.add_worksheet('7月')

bolds = tswb.add_format({'bold': True})
dates = tswb.add_format({'num_format': 'yyyy/m/d'})

tsws.write_column('A1',opws.col_values(0),dates)
tsws.write_column('B1',opws.col_values(1))
tsws.write_column('C1',opws.col_values(2))
tsws.write_column('D1',opws.col_values(3))
tsws.write_column('E1',opws.col_values(4),bolds)
# 关闭并保存创建的表格
tswb.close()

python处理word

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt  # 磅数
from docx.oxml.ns import qn  # 中文格式
# 以上是docx库中需要用到的部分

import time

price = input('请输入今日价格:')
company_list = ['客户1','客户2','客户3','客户4','客户5','客户6','客户7','客户8','客户9','客户10']

today = time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y='年',m='月',d='日')
# 获取今日时间,整理成“年-月-日”的格式

for i in company_list:
    # 针对每个客户名生成不同文档
    document = Document()

    document.styles['Normal'].font.name = u'宋体'
    # 设置文档的基础字体
    document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
    # 设置文档的基础样式


    p1 = document.add_paragraph()
    # 初始化建立第一个自然段
    p1.alignment = WD_ALIGN_PARAGRAPH.CENTER
    # 对齐方式为居中,没有这句的话默认左对齐。
    run1 = p1.add_run('关于下达%s产品价格的通知' % (today))
    # 这里是第一段的内容
    run1.font.name = '微软雅黑'
    # 设置西文字体
    run1._element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑')
    # 设置中文字体
    run1.font.size = Pt(21)
    # 设置字体大小为21磅
    run1.font.bold = True
    # 设置加粗
    p1.space_after = Pt(5)
    # 段后距离5磅
    p1.space_before = Pt(5)
    # 段前距离5磅

    p2 = document.add_paragraph()
    run2 = p2.add_run(i + ':')
    # 这里是对客户的称呼
    run2.font.name = '仿宋_GB2312'
    run2._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
    run2.font.size = Pt(16)
    run2.font.bold = True

    p3 = document.add_paragraph()
    run3 = p3.add_run('    根据公司安排,为提供优质客户服务,我单位拟定了今日价格为%s元,特此通知。' % price)
    run3.font.name = '仿宋_GB2312'
    run3._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
    run3.font.size = Pt(16)
    run3.font.bold = True

    p4 = document.add_paragraph()
    p4.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run4 = p4.add_run('(联系人:小杨    电话:18888888888)')
    run4.font.name = '仿宋_GB2312'
    run4._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
    run4.font.size = Pt(16)
    run4.font.bold = True

    document.save('%s-价格通知.docx' % i)
# 以“客户名-价格通知”作为文件名保存

参考:

  • https://www.cnblogs.com/ontheway703/p/5264517.html
  • https://www.jianshu.com/p/187e6b86e1d9
    https://xlsxwriter.readthedocs.io/working_with_pandas.html#ewx-pandas

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读