用Python语言实现将两个Excel文件完成类似SQL中内连接查询的合并操作
2018-03-01 18:50
1096 查看
在做文本分析过程中,需要实现将两个Excel文件中的数据完成合并操作,数据合并的要求与SQL中的内连接查询的功能一致。具体要求见如下图所示:
1.表一中的数据如下所示:
2.表二中的数据如下所示:
3.最后需要合并成的样例为:
完成此问题的代码应分为三个模块:1.EXCEL文件的读取模块;2.EXCEL文件内容的合并模块;3.EXCEL文件的写入模块。具体代码如下所示:import xlrd
import xlwt
import openpyxl
import string
import sys
Pos_Table1 = sys.argv[1]
Pos_Table2 = sys.argv[2]
Pos_Table_End=sys.argv[2]
Count1=int(sys.argv[3])-1
Count2=int(sys.argv[4])-1
def read07Excel(path):
wb = openpyxl.load_workbook(path)
sheet = wb.get_sheet_by_name('Sheet1')
sheet_value=[]
for row in sheet.rows:
tmp=[]
for cell in range(len(row)):
tmp.append(row[cell].value)
sheet_value.append(tmp)
return sheet_value
def write07Excel(path,value):
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = 'Sheet1'
for i in range(0, len(value)):
for j in range(0, len(value[i])):
sheet.cell(row=i+1, column=j+1, value=str(value[i][j]))
wb.save(path)
print("写入数据成功!")
Table1_txt=read07Excel(Pos_Table1)
Table2_txt=read07Excel(Pos_Table2)
total=[]
for i in range(len(Table1_txt)):
tmp=[]
for j in range(len(Table2_txt)):
if str(Table1_txt[i][Count1])==str(Table2_txt[j][Count2]):
for x in range(len(Table1_txt[i])):
if x==Count1:
continue
Table2_txt[j].append(Table1_txt[i][x])
tmp=Table2_txt[j]
total.append(tmp)
break
write07Excel(Pos_Table_End,total)我们来完成一个实例运行:
将1.xlsx文件如下图所示:
和2.xlsx文件如下图所示:
进行类似于SQL内连接的合并。
我们输入如下所示的命令:
此命令中包含4个参数:第一个为文件1的相对路径;第二个为文件2的相对路径;第3个为文件1中与文件2中的公共列的索引,例如本例中根据1.xlsx文件图中的标注取值为2;第4个为文件2中与文件1中的公共列的索引,例如本例中根据2.xlsx文件图中的标注取值为3
程序运行完成后,我们可以在文件2.xlsx中看到如下结果:
本程序的源代码下载地址为:https://github.com/XiaoYaoNet/Combine
1.表一中的数据如下所示:
2.表二中的数据如下所示:
3.最后需要合并成的样例为:
完成此问题的代码应分为三个模块:1.EXCEL文件的读取模块;2.EXCEL文件内容的合并模块;3.EXCEL文件的写入模块。具体代码如下所示:import xlrd
import xlwt
import openpyxl
import string
import sys
Pos_Table1 = sys.argv[1]
Pos_Table2 = sys.argv[2]
Pos_Table_End=sys.argv[2]
Count1=int(sys.argv[3])-1
Count2=int(sys.argv[4])-1
def read07Excel(path):
wb = openpyxl.load_workbook(path)
sheet = wb.get_sheet_by_name('Sheet1')
sheet_value=[]
for row in sheet.rows:
tmp=[]
for cell in range(len(row)):
tmp.append(row[cell].value)
sheet_value.append(tmp)
return sheet_value
def write07Excel(path,value):
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = 'Sheet1'
for i in range(0, len(value)):
for j in range(0, len(value[i])):
sheet.cell(row=i+1, column=j+1, value=str(value[i][j]))
wb.save(path)
print("写入数据成功!")
Table1_txt=read07Excel(Pos_Table1)
Table2_txt=read07Excel(Pos_Table2)
total=[]
for i in range(len(Table1_txt)):
tmp=[]
for j in range(len(Table2_txt)):
if str(Table1_txt[i][Count1])==str(Table2_txt[j][Count2]):
for x in range(len(Table1_txt[i])):
if x==Count1:
continue
Table2_txt[j].append(Table1_txt[i][x])
tmp=Table2_txt[j]
total.append(tmp)
break
write07Excel(Pos_Table_End,total)我们来完成一个实例运行:
将1.xlsx文件如下图所示:
和2.xlsx文件如下图所示:
进行类似于SQL内连接的合并。
我们输入如下所示的命令:
此命令中包含4个参数:第一个为文件1的相对路径;第二个为文件2的相对路径;第3个为文件1中与文件2中的公共列的索引,例如本例中根据1.xlsx文件图中的标注取值为2;第4个为文件2中与文件1中的公共列的索引,例如本例中根据2.xlsx文件图中的标注取值为3
程序运行完成后,我们可以在文件2.xlsx中看到如下结果:
本程序的源代码下载地址为:https://github.com/XiaoYaoNet/Combine
相关文章推荐
- Python操作Excel文件中多WorkSheet模拟数据库内连接查询
- awk 如何处理两个文件,实现类似数据库表连接的操作
- awk 如何处理两个文件,实现类似数据库表连接的操作
- python实现合并两个文件并打印输出
- 用Python语言实现对EXCEL文件的读写
- Python SQL查询并生成json文件操作示例
- Python文件操作小案例:交替合并两个记事本文件
- shell实现:对两个文件A[用户id,操作次数]及文件B[用户id,性别],合并得到C[用户id,操作次数,性别],并统计出男女用户操作所占的比例
- python 读取文件 并实现文件相关操作最后导出excel
- Python实现的两个文件操作:当前目录下所有文件和转码
- hadoop streaming两个数据文件实现join合并操作
- 系统语言文件操作实现两个文档内容的复制
- python实现两个文件合并功能
- Python实现爬虫抓取与读写、追加到excel文件操作示例
- C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并
- Python 文件操作实现代码
- 在两个不同的Access文件中,怎么写SQL语句跨库操作呀?
- python文件操作(2)--分析扫描得到的日志文件把文件状态导入Excel表格
- 针对Excel表格文件操作的编程实现
- Python实现tab文件操作