python合併excel相同的名稱的商品

2021-10-25 18:23:17 字數 2549 閱讀 2684

每個月都需要做一次將**商相同名稱商品進行數量和總價的彙總,一次有好幾家**商,每個**商的菜品有多有少。其中乙個單位的**商就有2000行,每次都做公式來搞還是麻煩,也麻煩,所以準備用python來實現。例如下面的  散裝花椒麵,有2個,數量分別是1和2,總金額分別是15和51 。彙總之後就變成了數量是3,金額是66。

彙總之後之後就成了這樣,從2337變成了163行。

下面是**

import xlwings as xw

from spentity import spentity

import xlwings as xw

class spentity:

def __init__(self,name,shuliang,total):

self.name=name

self.total=total

self.shuliang = shuliang

def gettotal(self):

print(self.danjia);

print(self.shuliang)

return self.total;

def biaoge():

# 獲取xlwings例項物件

# 開啟表

#選擇sheets

sheet = workbook.sheets("應付明細賬單");

#最大行數統計

address_all = sheet.used_range.address.split("$")[-1];

#拼接spzuidahang = "c" + address_all;

print(spzuidahang)

# 獲取商品名所在區域的資料

spms = sheet.range("c3:" + spzuidahang);

# 獲取數量所在區域的資料

shuliang = sheet.range("e3:" + "e" + address_all);

# 獲取總金額所在區域的資料

total = sheet.range("g3:" + "g" + address_all);

#建議乙個空字典用來裝資料

shangpings = {};

#遍歷for inx, spm in enumerate(spms):

#如果商品名為空,就不在執行了。

if (spm.value is none):

break;

#去除前後空格

tempspm = spm.value.strip();

# 去用名稱做key到字典裡檢視是否有這個物件

spentity = shangpings.get(tempspm);

#如果不存在

if spentity is none:

#建立物件

tempsp = spentity(tempspm,float(shuliang[inx].value),float(total[inx].value));

#以名稱做key,物件做鍵放到tempsp裡

shangpings[tempspm] = tempsp;

#如果存在

else:

#將數量取出來相加

spentity.shuliang = float(spentity.shuliang) + float(shuliang[inx].value);

# 將應付金額取出來相加

spentity.total = float(spentity.total) + float(total[inx].value);

#建議新工作表

hebing = workbook.sheets.add("合併工作表");

# 做為資料新增

sum = 2;

#將a1到c1設定為標題

hebing.range("a1:c1").value = ["商品名", "數量", "金額"];

#遍歷字典

for key, itm in shangpings.items():

hebing.range("a" + str(sum)).value = itm.name

hebing.range("b" + str(sum)).value = itm.shuliang;

hebing.range("c" + str(sum)).value = itm.total;

sum += 1;

print(itm.name + "數量" + str(itm.shuliang) + "總價" + str(itm.total))

if __name__ == '__main__':

biaoge();

歡迎各位大神指

使用VBA實現Excel合併相同內容的相鄰單元格

寫演算法的資料分析時生成了csv檔案,為了方便檢視需要對部分單元格進行合併。原始的csv檔案用excel開啟有大量如下形式的子表 而我希望處理之後變成如下格式 在網上搜尋了很久,大多只能對某一列進行操作,而我需要對整個 的行列都進行這個操作。除此之外,因為是資料分析的 我還希望只對非數字開頭的單元格...

記excel匯出相同列單元格合併

private log logger logfactory.getlog this.getclass 查詢資料存到list中 list rtnlist new arraylist object objpercentage for iterator iterator1 list.iterator it...

Python合併和拆分excel

當前目錄 og dir cwd origin 存放待合併的excel og ls os.listdir og dir 所有excel名稱 cb name combine.xlsx 合併後的檔名 合併 放置待拆分的excel 限1個 fname b dir os.listdir b dir 0 待拆分...