Excel表格
阅读原文时间:2023年07月08日阅读:2

自己一个一个试出来,并写上解释。

还不熟练,待多写代码多练习。

#!/usr/bin/python

-*- coding:utf-8 -*-

import os
import xlwt
import xlrd

excel_Path = (r"D:\python\The company plug-in\10.13.xlsx")

data = xlrd.open_workbook(excel_Path)

table = data.sheets()[0]
table = data.sheet_by_index(0)

table = data.sheet_by_name(u"03")

a = table.row_values(2) #整行数据
a = table.col_values(4) #整列数据

for i in a:

print i.encode("gb2312") #表格读取中文是要加这个进行转码

nrows = table.nrows

ncols = table.nclos

def set_style(name, height, bold=False):
style = xlwt.XFStyle() #初始化样式
font = xlwt.Font() #为样式创建字体
font.name = name #"Times New Roman"
font.bold = bold
font.color_index = 4
font.height = height

style.font = font  
return style

def write_excel():
f = xlwt.Workbook() #创建工作薄
"""
创建工作薄
"""
sheet1 = f.add_sheet(u"sheet1", cell_overwrite_ok=True) #创建sheet
row0 = [u"业务", u"状态", u"北京", u"上海", u"广州", u"深圳",u"状态小计", u"合计"] #列 输入内容列表
column0 = [u"机票", u"船票", u"火车票", u"汽车票", u"其它"]
status = [u"预定", u"出票", u"退票", u"业务小计"]
for i in range(0, len(row0)):
sheet1.write(0, i, row0[i], set_style("Times New Roman", 300, True))#1:竖着坐标 2:横着坐标 3:写入内容 4:设置字体和字体大小
# sheet1.write_merge(1, 1, 6, 6)#5
# sheet1.write_merge(1, 3, 6, 6)#6 # ()括号里的数值 分别为 1: 2:竖着数几行 3:
# sheet1.write_merge(1, 5, 5, 6)# 7 # ()括号里的数值 分别为 1: 2:竖着数几行 3和4:从那列到那列进行合并
# sheet1.write_merge(0, 5, 5, 6)# 8 # ()括号里的数值 分别为 1:竖着从第几行开始 2:竖着数几行格式化 3和4:从那列到那列进行合并

i, j = 1, 0  
while i < 4 \* len(status) and j < len(column0):  
    # print "yes"  
    sheet1.write\_merge(i, i + 3, 0, 0, column0\[j\], set\_style("Times New Roman", 250, True))  
    #分别为 1:竖着从第几行开始  2:竖着数几行格式化  3和4:从那列到那列进行合并 5:写入内容  6:设置字体和大小  
    sheet1.write\_merge(i, i + 3, 7, 7,)  # 最后一列"合计"  
    i += 4  
    j += 1  
i = 0  
while i < len(status) \* len(status):  
    for a in status:  
        # print status\[i\]  
        sheet1.write(i + 1, 1, a, set\_style("Times New Roman", 200, True))  
        i += 1  
print i  
sheet1.write\_merge(23, 23, 0, 1, row0\[7\], set\_style("Times New Roman", 300, True))

f.save("test23.xlsx")

#生成第一行

for i in range(0, len(row0)):

# print (0, i, row0[i], set_style("Times New Roman", 220, True))

sheet1.write(0, i, row0[i], set_style("Times New Roman", 220, True))

#生成第一列和最后一列(合并4行)

i, j = 1, 0

while i < 4 * len(column0) and j < len(column0):

sheet1.write_merge(i, i+3, 0, 0, column0[j], set_style("Arial", 220, True)) #第一列

sheet1.write_merge(i, i + 3, 7, 7,) #最后一列"合计"

i += 4

j += 1

sheet1.write_merge(21, 21, 0, 1, u"合计", set_style("Times New Roman", 220, True))

#生成第二列

i = 0

while i < 4 * len(column0):

for j in range(0, len(status)):

sheet1.write(j + i + 1, 1, status[j])

i += 4

f.save("demo1.xlsx") #保存文件

if __name__ == "__main__": # 测试,判断是不是被人导入,被人当模块使用的时候 就等于文件名
#generate_workbook()
#read_rxcel()
write_excel()

for i in os.listdir(excel_Path):

if "20170602_A" in i:

j = os.path.join(excel_Path, i)

# k = xlrd.open_workbook(j)

print j

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器