我用xlrd打开一个模板文件,xlutils.copy复制它,再用新值填充它,并保存它。 然而,似乎没有任何简单的方法来保护单元格的格式,wlrd高版本后无复制其单元的格式。只能复制它的文本信息。 以下为一个简单的复制excel文件程序;
#!/usr/bin/env python
# -*- coding: utf-8 -*-” #只对当前文件的中文编码有效
#Create by zhizaiqianli 2015-11-15 Version V1.0
#!/usr/bin/python
# Filename : txt_to_excel.py
import os
import xlrd
from xlutils.copy import copy
from Mymodule import cur_file_dir #获取文件的路径函数
path_py = "\\excel\example_BOM.xls" #以.py文件运行时读取excel时的路径
path_exe = "..\excel\example_BOM.xls" #以.exe文件运行时读取excel时的路径
path = cur_file_dir(path_py,path_exe) #获取到需要复制excel文件的路径
print path #打印excel文件路径
rbook = xlrd.open_workbook(path) #读取excel文件,只能读取内容无法读取excel格式信息
wbook = copy(rbook) #复制excel
wsheet = wbook.get_sheet(0) #通过get_sheet()获取的sheet有write()方法
wsheet.write(5, 0, 'changed!') #在sheet 0的第六行第一列写入changed
wbook.save('temp_BOM.xls') #保存复制修改过的excel
raw_input("Enter enter key to exit...")#插入输入的命令,.exe运行时不会一闪而过,方便查看打印信息
其中调用自己编写的读取文件路径的模块,编写好自己模块编译通过后,把模块.py和.pyc文件放入Python\Lib\site-packages\mymodule路径下,mymodule为我自己命名的文件夹;模块信息如下:
!/usr/bin/env python
#encoding=utf-8
#Create by zhizaiqianli 2015-11-15 Version V1.0
#!/usr/bin/python
#description:区分以脚本运行时和以exe读取文件时兼容性问题
# Filename : cur_file_dir.py
import os,sys
def cur_file_dir(path_py,path_exe): #获取脚本文件的当前路径
path = sys.path[0] #获取脚本路径
#判断为脚本文件还是py2exe编译后的文件,如果是脚本文件,则返回的是脚本的目录,如果是py2exe编译后的文件,则返回的是编译后的文件路径
if os.path.isdir(path):
return path+path_py
elif os.path.isfile(path):
return os.path.dirname(path)+path_exe