Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
apiTest1.0
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhangchunyao
apiTest1.0
Commits
464bee06
Commit
464bee06
authored
Jul 18, 2019
by
zhangchunyao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Delete Excel.py
parent
d2f0c59c
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
197 deletions
+0
-197
Excel.py
common/Excel.py
+0
-197
No files found.
common/Excel.py
deleted
100644 → 0
View file @
d2f0c59c
import
os
,
xlrd
from
xlutils.copy
import
copy
class
Reader
:
'''
by LiangChao
at 2019/7/11
用来读取Excel文件内容
'''
def
__init__
(
self
):
#整个excel工作簿缓存
self
.
workbook
=
None
#当前工作簿sheet
self
.
sheet
=
None
#当前sheet的行数
self
.
rows
=
0
#当前读取到的行数
self
.
cols
=
0
self
.
r
=
0
self
.
key_num
=
[]
#打开Excel
def
open_excle
(
self
,
srcfile
):
#如果打开的文件不存在,就报错
if
not
os
.
path
.
isfile
(
srcfile
):
print
(
"error:
%
s not exist!"
%
(
srcfile
))
return
#设置读取exel使用utf8编码
xlrd
.
Book
.
encoding
=
"utf8"
#读取EXCEL内容到缓存wordbook
self
.
workbook
=
xlrd
.
open_workbook
(
filename
=
srcfile
)
#选取第一个sheet页面
self
.
sheet
=
self
.
workbook
.
sheet_by_index
(
0
)
#设置rows为当前sheet行数
self
.
rows
=
self
.
sheet
.
nrows
self
.
cols
=
self
.
sheet
.
ncols
#设置默认读取为第一行
self
.
r
=
0
return
self
.
workbook
#获取sheet页面
def
get_sheets
(
self
):
#通过sheet名字,切换sheet页面
sheets
=
self
.
workbook
.
sheet_names
()
return
sheets
#切换sheet页面
def
set_sheet
(
self
,
name
):
#通过sheet名字,切换sheet页面
self
.
sheet
=
self
.
workbook
.
sheet_by_name
(
name
)
self
.
rows
=
self
.
sheet
.
nrows
self
.
r
=
0
return
#逐行读取
def
readline
(
self
):
row1
=
None
#如果当前还没到最后一行,则往下读取一行
if
self
.
r
<
self
.
rows
:
#读取第r行的内容
row
=
self
.
sheet
.
row_values
(
self
.
r
)
#设置下一次读取r的下一行
self
.
r
=
self
.
r
+
1
#辅助遍历行里面的列
i
=
0
row1
=
row
#把读取的数据都变成字符串
for
strs
in
row
:
row1
[
i
]
=
str
(
strs
)
i
=
i
+
1
return
row1
def
dict_data
(
self
):
if
self
.
rows
<=
1
:
print
(
"总行数小于1"
)
else
:
r
=
[]
for
i
in
list
(
range
(
self
.
rows
-
1
)):
# 从第二行取对应values值
value
=
self
.
sheet
.
row_values
(
i
+
1
)
values
=
value
[
2
:
4
]
if
values
[
0
]
!=
''
:
values
.
append
(
i
+
1
)
#self.key_num.append(i+2)
r
.
append
(
values
)
return
r
def
sheet_cont
(
self
,):
cont
=
self
.
sheet
.
nrows
r
=
[]
for
i
in
range
(
1
,
cont
):
r
.
append
(
i
)
return
r
def
readline_new
(
self
,
num
):
# num = self.key_num
row1
=
None
# 如果当前还没到最后一行,则往下读取一行
if
num
<
self
.
rows
:
# 读取第r行的内容
row
=
self
.
sheet
.
row_values
(
num
)
# 辅助遍历行里面的列
i
=
0
row1
=
row
# 把读取的数据都变成字符串
for
strs
in
row
:
row1
[
i
]
=
str
(
strs
)
i
=
i
+
1
return
row1
class
Writer
:
'''
by kongwen 2019/7/8 用来复制写入excel
'''
def
__init__
(
self
):
#读取需要的复制excel
self
.
workbook
=
None
#拷贝的工作簿
self
.
wb
=
None
#当前工作的sheet页
self
.
sheet
=
None
#记录生成的文件,用来保存
self
.
df
=
None
#记录写入的行
self
.
row
=
0
#记录写入的列
self
.
clo
=
0
#复制并打开excel
def
copy_open
(
self
,
srcfile
,
dstfile
):
#判断要复制的文件是否存在
if
not
os
.
path
.
isfile
(
srcfile
):
print
(
srcfile
+
" not exist"
)
return
#判断要新建的文件是否存在,存在则提示
if
os
.
path
.
isfile
(
dstfile
):
print
(
"warning:"
+
dstfile
+
"file already exist"
)
#记录要保存的文件
self
.
df
=
dstfile
#读取EXCEL到缓存
#formatting_info带格式的复制
self
.
workbook
=
xlrd
.
open_workbook
(
filename
=
srcfile
,
formatting_info
=
True
)
#拷贝
self
.
wb
=
copy
(
self
.
workbook
)
#默认使用第一个sheet
#sheet=wb.get_sheet('Sheet1')
return
#获取sheet页面
def
get_sheets
(
self
):
#获取所有sheet的名字,并返回第一个列表
sheets
=
self
.
workbook
.
sheet_names
()
#print(sheets)
return
sheets
#切换sheet页面
def
set_sheet
(
self
,
name
):
#通过sheet名字,切换sheet页面
self
.
sheet
=
self
.
wb
.
get_sheet
(
name
)
return
#写入指定单元格,保留原格式
def
write
(
self
,
r
,
c
,
value
):
#获取写入的单元格
def
_getCell
(
sheet
,
r
,
c
):
#获取行
row
=
sheet
.
_Worksheet__rows
.
get
(
r
)
if
not
row
:
return
None
#获取单元格
cell
=
row
.
_Row__cells
.
get
(
c
)
return
cell
#获取要写入的单元格
cell
=
_getCell
(
self
.
sheet
,
r
,
c
)
#写入值
self
.
sheet
.
write
(
r
,
c
,
value
)
if
cell
:
#获取要写入的单元格
ncell
=
_getCell
(
self
.
sheet
,
r
,
c
)
if
ncell
:
#设置写入后格式和写入前一样
ncell
.
xf_idx
=
cell
.
xf_idx
return
#保存
def
save_close
(
self
):
#保存复制后的文件到硬盘
self
.
wb
.
save
(
self
.
df
)
return
#调试
if
__name__
==
'__main__'
:
reader
=
Reader
()
reader
.
open_excle
(
'/Users/niweizhong/Desktop/case1.xls'
)
sheetname
=
reader
.
get_sheets
()
for
sheet
in
sheetname
:
#设置当前读取的sheet页面
reader
.
set_sheet
(
sheet
)
for
i
in
range
(
reader
.
rows
):
print
(
reader
.
readline
())
writer
=
Writer
()
writer
.
copy_open
(
'/Users/niweizhong/Desktop/case1.xls'
,
'/Users/niweizhong/Desktop/case2.xls'
)
sheetname
=
writer
.
get_sheets
()
writer
.
set_sheet
(
sheetname
[
0
])
writer
.
write
(
1
,
1
,
'William'
)
writer
.
save_close
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment