首页 > 编程知识 正文

python复制sheet的简单介绍

时间:2023-12-18 11:56:34 阅读:316886 作者:FWII

本文目录一览:

python如何向表格中添加数据,不覆盖原有数据?

import xlrd

from xlutils.copy import copy

向已存在Excel中添加sheet:

#打开需要操作的excel表

wb=xlrd.open_workbook(path)

#复制原有表

newb=copy(wb)

#新增sheet

wbsheet=newb.add_sheet(“sheet名”)

向已存在sheet中添加行

#获取原有excel表中名为‘table'的sheet

tabsheet = newb.get_sheet('table')

#k表示该sheet的最后一行

k=len(tabsheet.rows)

#在原有sheet后面新增数据

tabsheet.write(k,0,data1)

tabsheet.write(k,1,data2)

望采纳!

python复制excel文件

# -*- coding: utf-8 -*-

import xlrd

import shutil

import os

def read_excel():

# 打开文件

workbook = xlrd.open_workbook(r'C:UsersxxxDesktopxxx.xls')

# 获取所有sheet

print (workbook.sheet_names()) # [u'sheet1', u'sheet2']

#获取sheet

sheet= workbook.sheet_names()[0]

sheet_data=workbook.sheet_by_name(sheet)

print(sheet_data)

# sheet的名称,行数,列数

print (sheet_data.name,sheet_data.nrows,sheet_data.ncols)

rows = sheet_data.row_values(0) # 获取第四行内容

cols = sheet_data.col_values(2) # 获取第三列内容

print (rows)

for i,j in enumerate(rows):

print(i,':',j)

for i in range(sheet_data.nrows):

strr=sheet_data.row_values(i)[5][:5]

if(strr == 'AXIAL'):

dicom_path=sheet_data.row_values(i)[15]

row_path=sheet_data.row_values(i)[16]

print(row_path)

roww=row_path.split('\',3)[3]

print(roww)

#row_path='C:UsersxxxDesktopxxx'

path_now=os.path.join('\\xxx',roww)

print(path_now)

shutil.copytree(path_now,r'C:UsersxxxDesktopGet')

#shutil.copytree(row_path,r'C:UsersxxxDesktop')

break

if __name__ == '__main__':

read_excel()

#文件复制主要利用shutil包,copytree的第一个参数为需要复制的文件夹,第二个参数为目标位置;但第二个参数的目标位置必须不存在,否则会报错。

excel表格,如何筛选其中某个数据的所在行和上下两行数据,然后筛选复制python?

import openpyxl

workbook=openpyxl.load_workbook('文件路径名.xslx')

sheet=workbook["表单名"]

for row in sheet:#遍历每一行

for cell in row:#遍历每一行中的每个单元格

if cell.value == "筛选数据":#获取到了筛选数据所在的单元格

"所在行" = cell.row

break

break

list1=[]#一个空列表用来装行数据

row_num="所在行"-1#目标行的上一行开始获取值

for i in range(3)#3行循环3次

list1.append([])

for cell in sheet[ row_num]:

list1[i].append(cell.value)#一行的数据添加到列表

row_num+=1#一行完了后,行数+1

最后list1=[[目标上一行数据],[目标行数据],[目标下一行数据]]

新手学习Python,求教Python中如何导入excel数据

读excel要用到xlrd模块,官网安装()。然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:

1、导入模块

import xlrd

2、打开Excel文件读取数据

data = xlrd.open_workbook('excel.xls')

3、获取一个工作表

① table = data.sheets()[0] #通过索引顺序获取

② table = data.sheet_by_index(0) #通过索引顺序获取

③ table = data.sheet_by_name(u'Sheet1')#通过名称获取

4、获取整行和整列的值(返回数组)

table.row_values(i)

table.col_values(i)

5、获取行数和列数 

table.nrows

table.ncols

6、获取单元格

table.cell(0,0).value

table.cell(2,3).value

就我自己使用的时候觉得还是获取cell最有用,这就相当于是给了你一个二维数组,余下你就可以想怎么干就怎么干了。得益于这个十分好用的库代码很是简洁。但是还是有若干坑的存在导致话了一定时间探索。现在列出来供后人参考吧:

1、首先就是我的统计是根据姓名统计各个表中的信息的,但是调试发现不同的表中各个名字貌似不能够匹配,开始怀疑过编码问题,不过后来发现是因为空格。因为在excel中输入的时候很可能会顺手在一些名字后面加上几个空格或是tab键,这样看起来没什么差别,但是程序处理的时候这就是两个完全不同的串了。我的解决方法是给每个获取的字符串都加上strip()处理一下。效果良好

2、还是字符串的匹配,在判断某个单元格中的字符串(中文)是否等于我所给出的的时候发现无法匹配,并且各种unicode也不太奏效,百度过一些解决方案,但是都比较复杂或是没用。最后我采用了一个比较变通的方式:直接从excel中获取我想要的值再进行比较,效果是不错就是通用行不太好,个呢不能问题还没解决。

二、写excel表

写excel表要用到xlwt模块,官网下载()。大致使用流程如下:

1、导入模块

复制代码代码如下:

import xlwt

2、创建workbook(其实就是excel,后来保存一下就行)

复制代码代码如下:

workbook = xlwt.Workbook(encoding = 'ascii')

3、创建表

复制代码代码如下:

worksheet = workbook.add_sheet('My Worksheet')

4、往单元格内写入内容

复制代码代码如下:

worksheet.write(0, 0, label = 'Row 0, Column 0 Value')

5、保存

复制代码代码如下:

workbook.save('Excel_Workbook.xls')

python操作excel问题?

# -*- coding: utf-8 -*-#导入xlwt模块import xlwt# 创建一个Workbook对象,这就相当于创建了一个Excel文件book = xlwt.Workbook(encoding='utf-8', style_compression=0)'''Workbook类初始化时有encoding和style_compression参数encoding:设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。默认是ascii。当然要记得在文件头部添加:#!/usr/bin/env python# -*- coding: utf-8 -*-style_compression:表示是否压缩,不常用。'''#创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。# 在电脑桌面右键新建一个Excel文件,其中就包含sheet1,sheet2,sheet3三张表sheet = book.add_sheet('test', cell_overwrite_ok=True)# 其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False# 向表test中添加数据sheet.write(0, 0, 'EnglishName') # 其中的'0-行, 0-列'指定表中的单元,'EnglishName'是向该单元写入的内容sheet.write(1, 0, 'Marcovaldo')txt1 = '中文名字'sheet.write(0, 1, txt1.decode('utf-8')) # 此处需要将中文字符串解码成unicode码,否则会报错txt2 = '马可瓦多'sheet.write(1, 1, txt2.decode('utf-8')) # 最后,将以上操作保存到指定的Excel文件中book.save(r'e:test1.xls') # 在字符串前加r,声明为raw字符串,这样就不会处理其中的转义了。否则,可能会报错

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。