python怎么合并excel的两个sheet并去重?

可以采用一些操作Excel的模块去实现,比如xlrd、xlwt、openpyxl、xlsxwriter等模块。xlrd模块主要用于读取Excel表,xlwt与xlsxwriter模块主要用于将数据写入表中,两个模块任选其一即可,但是xlwt与xlsxwriter模块不支持修改表,所以在信息追加的时候会较麻烦,有些朋友可能这个地方遇到了很大的问题,其实这个问题至少有两种思路解决:

A、换成其他模块,比如openpyxl等,这个模块实现起来会相对简单一些,比如目前已经收到的苏wisdom同学采用的就是这种方法,值得表扬,所以以下方法1会参照苏wisdom同学的答案。此外,截止至目前为止『歹ピ№ㄕ』同学、微雨同学、黄梦颖同学已经提交第二次作业,一并表扬。

B、仍然使用xlwt与xlsxwriter等模块,但是先将每次读取的信息存储到list(列表)中,然后,最后一次写入。这一种方式稍微复杂一些,所以老师在方法2中采用这种方式去写,目的是给大家一个解决方案的参考,有更优的方案可以随时邮箱反馈。

此外,还有一个难点,即一个表格中有多个sheet,我们希望能够用程序自动获取这多个sheet,然后将各sheet中的内容一并写入到最终表格中,目前答案中暂时没有看到解决这个问题,如果大家能解决这个问题,是极好的。各位同学可以参考老师的第二种方法,第二种方式中,考虑了多个sheet的问题,各位也可以对程序进行优化。

python处理excel合并表格

工作中经常用到Excel,很多事情都重复处理,比如每天的日报,每周的周报,各种数据表,这种固定的表其实都是重复性的劳动。最近这段时间一直在学python,但是断断续续的,眼高手低,看别人的代码看的很懂,但是自己就是写不出来,决定自己写个小程序练练手,解决下身边的实际问题,提高工作效率。

这个小脚本主要是把多个excel文件合并到一个文e5a48de588b6e799bee5baa631333363393666件中。网上搜索了下文章,有不少excel的python库,最后选择了适合python3的openpyxl库,这个库安装很简单,

pip install openpyxl

开发的环境是:mac/win python3.5 pycharm

废话不多说,把代码贴出来,请大家多指点下,我觉着代码还可以更简洁下,如果大家有好的优化方案麻烦留言指导下:

#coding=gbkimport openpyxlexcel_data=['qihu.xlsx','baidu.xlsx']# new=openpyxl.load_workbook('all.xlsx')for excel_name in excel_data:
wb= openpyxl.load_workbook(excel_name,data_only=True)
sheet_name=wb.get_sheet_names()
# print(sheet_name)
for work in sheet_name:
nb = openpyxl.load_workbook('all.xlsx',data_only=True)
newsheet_name = nb.get_sheet_names()
if work in newsheet_name :
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row 1):
for j in range(1,sheet.max_column 1):
# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value
name.cell(column=j,row=i).value=data
else:
newsheet = nb.create_sheet(title=work)
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row 1):
for j in range(1,sheet.max_column 1):
# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value
name.cell(column=j,row=i).value=data
print(name)
nb.save('all.xlsx')
# print(newsheet_name)

使用python将excel表中数据导入sql server数据库

工作中经常用到Excel,很多事情都重复处理,比如每天的日报,每周的周报,各种数据表,这种固定的表其实都是重复性的劳动。最近这段时间一直在学python,但是断断续续的,眼高手低,看别人的代码看的很懂,但是自己就是写不出来,决定自己写个小程序练练手,解决下身边的实际问题,提高工作效率。

这个小脚本主要是把多个excel文件合并到一个文e5a48de588b6e799bee5baa631333363393666件中。网上搜索了下文章,有不少excel的python库,最后选择了适合python3的openpyxl库,这个库安装很简单,

pip install openpyxl

开发的环境是:mac/win python3.5 pycharm

废话不多说,把代码贴出来,请大家多指点下,我觉着代码还可以更简洁下,如果大家有好的优化方案麻烦留言指导下:

#coding=gbkimport openpyxlexcel_data=['qihu.xlsx','baidu.xlsx']# new=openpyxl.load_workbook('all.xlsx')for excel_name in excel_data:
wb= openpyxl.load_workbook(excel_name,data_only=True)
sheet_name=wb.get_sheet_names()
# print(sheet_name)
for work in sheet_name:
nb = openpyxl.load_workbook('all.xlsx',data_only=True)
newsheet_name = nb.get_sheet_names()
if work in newsheet_name :
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row 1):
for j in range(1,sheet.max_column 1):
# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value
name.cell(column=j,row=i).value=data
else:
newsheet = nb.create_sheet(title=work)
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row 1):
for j in range(1,sheet.max_column 1):
# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value
name.cell(column=j,row=i).value=data
print(name)
nb.save('all.xlsx')
# print(newsheet_name)

python实现excel合并

工作中经常用到Excel,很多事情都重复处理,比如每天的日报,每周的周报,各种数据表,这种固定的表其实都是重复性的劳动。最近这段时间一直在学python,但是断断续续的,眼高手低,看别人的代码看的很懂,但是自己就是写不出来,决定自己写个小程序练练手,解决下身边的实际问题,提高工作效率。

这个小脚本主要是把多个excel文件合并到一个文e5a48de588b6e799bee5baa631333363393666件中。网上搜索了下文章,有不少excel的python库,最后选择了适合python3的openpyxl库,这个库安装很简单,

pip install openpyxl

开发的环境是:mac/win python3.5 pycharm

废话不多说,把代码贴出来,请大家多指点下,我觉着代码还可以更简洁下,如果大家有好的优化方案麻烦留言指导下:

#coding=gbkimport openpyxlexcel_data=['qihu.xlsx','baidu.xlsx']# new=openpyxl.load_workbook('all.xlsx')for excel_name in excel_data:
wb= openpyxl.load_workbook(excel_name,data_only=True)
sheet_name=wb.get_sheet_names()
# print(sheet_name)
for work in sheet_name:
nb = openpyxl.load_workbook('all.xlsx',data_only=True)
newsheet_name = nb.get_sheet_names()
if work in newsheet_name :
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row 1):
for j in range(1,sheet.max_column 1):
# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value
name.cell(column=j,row=i).value=data
else:
newsheet = nb.create_sheet(title=work)
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row 1):
for j in range(1,sheet.max_column 1):
# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value
name.cell(column=j,row=i).value=data
print(name)
nb.save('all.xlsx')
# print(newsheet_name)

需求:将excel表中的数据通过PYTHON脚本编写,每日...

Created on Mon Mar 16 11:23:05 2015
@author: admin
"""
# 分批次运行,先得到books, 再运行,利用print 来debugimport pandas as pd
import numpy as np
import matplotlib as pl
import os
count=0
#ori_path='xx'
ori_path='C:\Python27\data\sample'
def get_xls_books(ori_path): # get target filename and dir of a pathtemp = list(os.walk(ori_path)) #tmp is list ,tmp[0]该目录文件路径和文件名, tmp[1]:子目录文件路径,文件名称book_path=[]
book_name=[]
root=temp[0][0]
for i in temp[0][2]:
if os.path.splitext(i)[1] == '.xlsx': #splite filenameobj_path=os.path.join(root,i)
book_path.append(obj_path)
book_name.append(os.path.splitext(i)[0])
return zip(book_path, book_name)
def get_xls_sheets(obj_path): #get all sheets of a object pathxls=pd.ExcelFile(obj_path)
sheet_names=xls.sheet_names
sheets=[xls.parse(i) for i in range(0,len(sheet_names)) ] # use parse can get dataframe saved into a listreturn zip(sheet_names,sheets)
books=get_xls_books(ori_path) # book paths list#xls=pd.ExcelFile(books[0])
#print xls.parse(0).columns
for book in books: # this loop get a bookbookname=book[1]
bookpath=book[0]
sheets=get_xls_sheets(bookpath) # get all sheets and names from book pathfor i in range(len(sheets)): #operate each sheet, is range(len) not lensheetname=sheets[i][0]
name=bookname '-' sheetname '.' 'csv'
pd_sheet=sheets[i][1] # dataFrame
cols=pd_sheet.columns
pdf=pd_sheet[[cols[17],cols[18],cols[4],cols[6],cols[8],cols[10],cols[19],cols[16]]] # use emunerate functionpdf.columns=['area','patch','wangdian','operator','custid','servid','servtype','is_identify'] # renamepdf1=pdf[pdf['is_identify']=='是'] #filterpdf2=pdf1.drop('is_identify',1)
pdf2.to_csv(os.path.join(ori_path,name), header=None, index=None)