本文目錄一覽:
- 1、python如何向表格中添加數據,不覆蓋原有數據?
- 2、python複製excel文件
- 3、excel表格,如何篩選其中某個數據的所在行和上下兩行數據,然後篩選複製python?
- 4、新手學習Python,求教Python中如何導入excel數據
- 5、python操作excel問題?
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:\Users\xxx\Desktop\xxx.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:\Users\xxx\Desktop\xxx’
path_now=os.path.join(‘\\\\xxx’,roww)
print(path_now)
shutil.copytree(path_now,r’C:\Users\xxx\Desktop\Get’)
#shutil.copytree(row_path,r’C:\Users\xxx\Desktop’)
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字符串,這樣就不會處理其中的轉義了。否則,可能會報錯
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/244794.html