久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > 關(guān)于Xlwings使用,配套案例一個(gè)不少

        關(guān)于Xlwings使用,配套案例一個(gè)不少

        來源:千鋒教育
        發(fā)布人:wjy
        時(shí)間: 2022-06-07 11:38:00 1654573080

          本篇文章是圍繞以下四點(diǎn)帶大家學(xué)習(xí)xlwings。

          xlwings是什么

          xlwings安裝更新與卸載

          xlwings詳細(xì)使用

          案例分享

          1.xlwings是什么

          在日常生活中我們或多或少的都會(huì)跟Excel打交道,比如做銷售統(tǒng)計(jì),人力的考勤,學(xué)生的考試成績等等,甚至在某些領(lǐng)域會(huì)涉及到批量操作Excel表格,那對于非程序員來說,可能使用Excel中的函數(shù),但是在某種場景下這些又是不好使的,只能熬夜加班啦!但是對于程序員來說,可能就是分分鐘的事,輕松搞定。

          那在我們Python中有哪些模塊(或者第三方庫)可以輕松處理Excel 呢?給大家列出來學(xué)習(xí)一下

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少275

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少278

         

          哇slwings是不是很香,更詳細(xì)的大家可以去參看趣味干貨中的:Python殺死Excel?眾多模塊哪家強(qiáng),鏈接:https://mp.weixin.qq.com/s/uL6JbxNWUYa7yjUp8aorSA

          簡單介紹下xlwings,xlwings是一個(gè)可以實(shí)現(xiàn)從Excel調(diào)用Python,也可在python中調(diào)用Excel的庫。開源免費(fèi),一直在更新。特點(diǎn):

          1、xlwings支持.xls讀,支持.xlsx文件讀寫。

          2、支持Excel操作。

          3、支持VBA。

          4、強(qiáng)大的轉(zhuǎn)換器可以處理大部分?jǐn)?shù)據(jù)類型,包括在兩個(gè)方向上的numpy array和pandas DataFrame。

          文檔鏈接:https://docs.xlwings.org/en/stable/index.html

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少631

         

          有沒有發(fā)現(xiàn),xlwings宗旨就是讓Excel飛起來!!!

          2.xlwings安裝與使用

          安裝

          像安裝其他模塊一樣,使用pip安裝即可

          pip install xlwings

          如果你是在使用Anaconda也可以,使用conda安裝

          conda install xlwings

          請注意,官方的conda軟件包可能落后于幾個(gè)版本。但是,您可以使用conda-forge通道(如果已經(jīng)安裝了xlwings,請用upgrade替換安裝):

          conda install -c conda-forge xlwings

          注意:在安裝過程中,xlwings也是有依賴項(xiàng)的,但是依賴項(xiàng)通過conda或pip自動(dòng)安裝

          Windows:pywin32

          Mac:psutil,appscript

          如果原來安裝過,使用如下操作更新

          要更新到最新的xlwings版本,請?jiān)诿钐崾痉羞\(yùn)行以下內(nèi)容:

          pip install --upgrade xlwings

          或者:

          conda update -c conda-forge xlwings

          通過運(yùn)行以下內(nèi)容(確保先關(guān)閉Excel),確保您的Excel加載項(xiàng)版本與您的Python軟件包保持同步:

          xlwings addin install

          若要卸載xlwings,移步下面的操作

          要完全卸載xlwings,請先卸載加載項(xiàng),然后使用安裝xlwings軟件包時(shí)使用的相同方法(pip或conda)卸載xlwings軟件包:

          xlwings addin remove

          然后

          pip uninstall xlwings

          或者:

          conda remove xlwings

          最后,手動(dòng)刪除個(gè)人文件夾中的.xlwings目錄(如果存在)。

          3.xlwings詳細(xì)使用

          在我們操作之前可以先了解下,如下內(nèi)容:

          • 新建:創(chuàng)建一個(gè)不存在的工作薄或者工作表

          • 打開:打開一個(gè)已經(jīng)存在的工作薄

          • 引用:就是告訴程序,你要操作哪個(gè)對象。比如你打開了A、B、C三個(gè)工作薄,現(xiàn)在你想操作A工作薄,就要先引用A

          • 激活:我們可以同時(shí)打開多個(gè)工作薄,但是一次只能操作一個(gè)工作簿,我們正在操作的這個(gè)工作薄稱為**當(dāng)前活動(dòng)工作薄。

          在xlwings中

          • Excel程序用App來表示,多個(gè)Excel程序集合用Apps表示;

          • 單個(gè)工作簿用Book表示,工作簿集合用Books表示;

          • 單個(gè)工作表用Sheet表示,工作表集合用Sheets表示;

          • 區(qū)域用Range表示,既可以是一個(gè)單元格,也可以是一片單元格區(qū)域。

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少1672

         

          對Excel進(jìn)行操作主要使用如下三個(gè)類:

          import xlwings as xw

          xw.App 打開一個(gè)excel應(yīng)用

          xw.Book 創(chuàng)建一個(gè)工作薄

          xw.Sheet 創(chuàng)建一個(gè)工作表

          初試:創(chuàng)建一個(gè)excel表格并保存

          import xlwings as xw

          # 打開excel,參數(shù)visible表示處理過程是否可視,add_book表示是否打開新的Excel程序

        with xw.App(visible=True,add_book=False) as app:
        # 創(chuàng)建一個(gè)工作薄
        book = app.books.add()
        # 工作薄中創(chuàng)建一個(gè)sheet
        sht = book.sheets.add()
        # 向表格的A1單元格寫入“Hello Python”
        sht.range('A1').value = 'Hello Python'
        # 保存
        book.save('./test.xlsx')

          理解App

          App就是我們打開的一個(gè)Excel應(yīng)用,在我們程序員看來一個(gè)App對象就是一個(gè)Excel的實(shí)例,在此實(shí)例下創(chuàng)建工作薄。因此我們要?jiǎng)?chuàng)建工作簿,就必須先創(chuàng)建App實(shí)例。一個(gè)App實(shí)例可以創(chuàng)建多個(gè)工作簿Book。

          使用xlwings可以創(chuàng)建一個(gè)或者多個(gè)App,而每個(gè)App中又可以創(chuàng)建多個(gè)工作薄Book,并且多個(gè)App之間是相互獨(dú)立的。

          要使用xlwings就需要先引用該庫

        import xlwings as xw

        app=xw.App()
        pid = app.pid
        print(pid) # 6260就是這個(gè)AppPID

        綜合:

        import xlwings as xw

        app=xw.App()
        pid = app.pid
        # 就是這個(gè)AppPID
        app1=xw.App()
        pid1 = app1.pid
        print(pid,pid1) # 6260

        count = xw.apps.count
        print(count)
        print(xw.apps.keys())

        創(chuàng)建App

          我們可以通過xw.app()創(chuàng)建一個(gè)新的app實(shí)例

          app=xw.App(visible=True,add_book=False) # 當(dāng)然也可以通過app.visible = True設(shè)置可見性

          其中可以設(shè)置參數(shù)visible:用來設(shè)置程序是否可見,True表示可見(默認(rèn)),F(xiàn)lase不可見。addbook用來設(shè)置是否自動(dòng)創(chuàng)建工作簿,True表示自動(dòng)創(chuàng)建(默認(rèn)),F(xiàn)alse不創(chuàng)建。當(dāng)設(shè)置成addbook=False時(shí),可以創(chuàng)建App,但是還未生成PID,只有當(dāng)這個(gè)App創(chuàng)建了工作簿后,才會(huì)生成自己的PID 。

          創(chuàng)建成果后可以查看pid

        import xlwings as xw

        app=xw.App()
        pid = app.pid
        print(pid) # 6260就是這個(gè)AppPID

        綜合:

        import xlwings as xw

        app=xw.App()
        pid = app.pid
        # 就是這個(gè)AppPID
        app1=xw.App()
        pid1 = app1.pid
        print(pid,pid1) # 6260

        count = xw.apps.count
        print(count)
        print(xw.apps.keys())

          結(jié)果:

          

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少3030

         

          可以引用某個(gè)app實(shí)例進(jìn)行操作并激活

        app = xw.apps[992]
        app.activate() # 或者app.activate(steal_focus=True)
        # 當(dāng)steal_focus=True時(shí), Excel程序變?yōu)樽钋芭_(tái)的應(yīng)用,并且把焦點(diǎn)從Python切換到Excel

          在操作一個(gè)app對象的時(shí)候要先引用工作薄,但是引用并不代表激活,激活就是當(dāng)前操作的工作薄。

          常用的屬性有:

          app.screen_updating:打開屏幕更新,我們可以看到xlwings對Excel進(jìn)行操作的過程,關(guān)閉更新可以加速腳本運(yùn)行。默認(rèn)是打開的。

          app.display_alerts:在使用Excel的過程中,經(jīng)常會(huì)遇到一些提醒信息,比如關(guān)閉前的保存提示、數(shù)據(jù)有效性的警告窗口,若想隱藏這些窗口可以設(shè)置成False。如果提醒信息是需要反饋的,Excel會(huì)選擇默認(rèn)的方式True

        import xlwings as xw

        app = xw.App(visible=False, add_book=False)  # 界面設(shè)置
        app.display_alerts = False  # 關(guān)閉提示信息
        app.screen_updating = False  # 關(guān)閉顯示更新

        wb = app.books.add()  # 創(chuàng)建新的工作簿
        sht = wb.sheets['Sheet1']  # 實(shí)例化工作表
        sht.range('A1').value = 'Hello World!'
        print(sht.range('A1').value)  # 讀取
        wb.close()
        app.kill()

          其中關(guān)閉app有兩種方式,通過測試使用kill()函數(shù)更快些。

          app.kill():通過殺掉進(jìn)程,強(qiáng)制Excel app退出

          app.quit():退出excel程序,不保存任何工作簿

          工作簿Book與Books

          前面介紹了app,并且一個(gè)app可以包含多個(gè)工作薄,如何在app中創(chuàng)建工作薄呢?

          創(chuàng)建Book對象

          官方給出的創(chuàng)建工作薄的方式如下:

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少3915

         

          兩種方式的區(qū)別:方式1是創(chuàng)建一個(gè)新的App,并在新App中新建一個(gè)Book,方式2是在當(dāng)前App下新建一個(gè)Book

          如果是打開一個(gè)已經(jīng)存在的則使用:

          wb = app.books.open('絕對或者相對路徑的excel文件')

          '或者

          wb = xw.Book('絕對或者相對路徑的excel文件')

          其中創(chuàng)建Book對象的參數(shù)如下:

        Book(fullname=None, updatelinks=None, readonly=None, format=None,
         password=None, writerespassword=None, ignorereadonlyrecommended=None,
         origin=None, delimiter=None, editable=None, notify=None, converter=None,
         addtomru=None, local=None, corruptload=None, impl=None)

          詳細(xì)情況可以參考文檔:https://docs.microsoft.com/zh-cn/office/vba/api/excel.workbooks.open

          xw.Book('絕對或者相對路徑的excel文件')既可以打開工作薄也可以引用工作簿。

          激活與保存

          wb.activate()

          # 如果steal_focus=True, 則把窗口顯示到最上層,并且把焦點(diǎn)從Python切換到Excel

          wb.activate(steal_focus=True)

          保存工作薄:

          wb.save()

          # 或者使用指定路徑保存

          wb.save('存儲(chǔ)路徑')

          關(guān)閉

          關(guān)閉工作薄也很簡單,就是使用wb.close(),注意:wb.close()只是關(guān)閉并不會(huì)保存,所以在關(guān)閉之前必須要使用save()進(jìn)行一下保存才可以??梢钥紤]使用with搭建上下文,實(shí)現(xiàn)關(guān)閉資源。

        import xlwings as xw

        app=xw.App(visible=True,add_book=False)
        app.display_alerts=False
        app.screen_updating=False
        # 文件位置:filepath,打開test文檔,然后保存,關(guān)閉,結(jié)束程序
        filepath=r'test.xlsx'
        wb=app.books.open(filepath)

        wb.save()
        wb.close()
        app.quit()

          若想獲取當(dāng)前活動(dòng)App中的所有books,可以直接通過下列方式

        import xlwings as xw

        # 當(dāng)前活動(dòng)App的工作簿集合
        books = xw.books

        # 或者使用app.books獲取
        # books = app.books

          工作表Sheet與查看所有Sheets

        新建Sheet

        sht = wb.sheets.add()
        # 或者
        sht = wb.sheets.add('test',after='sheet2')

        參數(shù)1為工作表名稱,省略的話為Excel默認(rèn)名稱,參數(shù)2為插入位置,可選before或者after

        若想引用某一個(gè)Sheet,可以通過下面方式

        sht = wb.sheets('sheet1') # 指定名稱獲取sheet工作表

        sht = wb.sheets(1) # 根據(jù)序號(hào)獲取

        sht = xw.sheets.active #獲取當(dāng)前活動(dòng)的工作表

        import xlwings as xw

        app=xw.App(visible=True,add_book=False)
        app.display_alerts=False
        app.screen_updating=False
        # 文件位置:filepath,打開test文檔,然后保存,關(guān)閉,結(jié)束程序
        filepath=r'test.xlsx'
        wb=app.books.open(filepath)

        # add()是在現(xiàn)有的sheets集合列表中追加新的Sheet
        sht1 = wb.sheets.add()
        sht2 = wb.sheets.add()
        print(wb.sheets.count)

        sht3 = wb.sheets(1)
        # sht1.activate()
        sht3.range('A1').value = 'Hello Running'

        wb.save('test1.xlsx')
        wb.close()
        app.quit()

        sheet對象可以調(diào)用的方法有:

         sheet.activate       sheet.charts         sheet.index
         sheet.api            sheet.clear          sheet.name
         sheet.autofit        sheet.clear_contents sheet.names
         sheet.book           sheet.delete         sheet.pictures
         sheet.cells          sheet.impl           sheet.range
         ......

        常用的有:

        # 清除工作表所有內(nèi)容和格式
        sht.clear()
        # 清除工作表的所有內(nèi)容但是保留原有格式
        sht.clear_contents()
        # 刪除工作表
        sht.delete()
        # 自動(dòng)調(diào)整行高列寬
        sht.autofit('c')
        # 在活動(dòng)工作簿中選擇
        sht.select()

        可以通過屬性獲取獲取工作表的名稱、所有單元格的區(qū)域?qū)ο?/font>、當(dāng)前工作表的索引值

        sht.name      sht.cells      sht.index     sht.names

          引用區(qū)域與單元格操作

          在操作區(qū)域或者單元格之前,首先就要引用他們,其實(shí)就是表明你要操作的區(qū)域或者單元格是哪些。可以認(rèn)為區(qū)域是多個(gè)單元格。

          引用區(qū)域的方式有很多種,下面列舉一下常見的引用方式:

        xw.Range('A1:D4')
        xw.Range((1,1), (44))
        xw.Range(xw.Range('A1'),xw.Range('D4'))
        xw.Range(xw.Range('A1:E6'),xw.Range('C3:D7'))
        xw.Range('NamedRange')
        app.range("A1")  # 注意是小寫的range
        sht.range('A1')
        xw.books['MyBook.xlsx'].sheets[0].range('A1')
        sht['A1']
        sht['A1:D4']
        sht[0,5]
        sht[:5,:5]

          區(qū)域管理可以通過如下方式:

          range.offset(rowoffset=5,columnoffset=2) 表示偏移,rowoffset行偏移量(正數(shù)表示向下偏移,負(fù)數(shù)相反),columnoffset列偏移量(正數(shù)表示向右偏移,負(fù)數(shù)相反)

          注意:是將選區(qū)范圍進(jìn)行偏移,內(nèi)容不進(jìn)行偏移

          range.expand(mode='down') 擴(kuò)展區(qū)域,參數(shù)可選取 'down' , 'right' ,'table' ,類似我們使用向下、向右或者下右方的區(qū)域擴(kuò)展操作。

          range.resize(rowsize=4, columnsize=2) 表示調(diào)整選中區(qū)域的大小,參數(shù)表示調(diào)整后區(qū)域的行、列的數(shù)量。

          range.current_region 表示全選 類似Ctrl + A

          對區(qū)域或單元格進(jìn)行操作:

          存儲(chǔ)數(shù)據(jù)

          儲(chǔ)存單個(gè)值

          # ".value“屬性

          sht.range('A1').value=1

          儲(chǔ)存列表

          # 將列表[1,2,3]儲(chǔ)存在A1:C1中

          sht.range('A1').value=[1,2,3]

          # 將列表[1,2,3]儲(chǔ)存在A1:A3中

          sht.range('A1').options(transpose=True).value=[1,2,3]

          # 將2x2表格,即二維數(shù)組,儲(chǔ)存在A1:B2中,如第一行1,2,第二行3,4

          sht.range('A1').options(expand='table').value=[[1,2],[3,4]]

          讀取數(shù)據(jù)

          讀取單個(gè)值

          # 將A1的值,讀取到a變量中

          a=sht.range('A1').value

          將值讀取到列表中

          #將A1到A2的值,讀取到a列表中

          a=sht.range('A1:A2').value

          # 將第一行和第二行的數(shù)據(jù)按二維數(shù)組的方式讀取

          a=sht.range('A1:B2').value

          清除與刪除

          # 清除range的內(nèi)容

          rng.clear_contents()

          # 清除格式和內(nèi)容

          rng.clear()

          # 刪除

          rng.delete(shift=None)

          其他設(shè)置

          # 獲取數(shù)字格式

          rng.number_format

          # 設(shè)置數(shù)字格式

          rng.number_format = '0.00%'

          rng.insert(shift=None, copy_origin='format_from_left_or_above')

          # 返回區(qū)域第一行的行號(hào)

          rng.row

          # 返回區(qū)域的第一列的號(hào),注意返回的列號(hào)不是ABCD,而是1234

          rng.column

          # 獲取行高 或者設(shè)置行高

          rng.row_height

          rng.row_height = 20

          # 獲取列寬或設(shè)置列寬

          rng.column_width

          rng.column_width = 20

          # 自適應(yīng)行高列寬

          rng.autofit()

          rng.columns.autofit()

          rng.rows.autofit()

          # 合并單元格

          rng.merge(across=False)

          rng.merge_area # 返回合并單元格區(qū)域

          rng.merge_cells # 返回True或者False,測試是否在合并單元格區(qū)域

          rng.unmerge() # 取消單元格合并

          # 背景色

          rng.color # 獲取指定區(qū)域的背景色

          xw.Range('A1').color = (255,255,255) # 設(shè)置背景色

          xw.Range('A2').color = None # 去除背景色

          其他參考

         range.add_hyperlink  range.clear_contents range.count
         range.address        range.color          range.current_region
         range.api            range.column         range.end
         range.autofit        range.column_width   range.expand
         range.clear          range.columns        range.formula
        ...等等

          range.add_hyperlink('https://www.baidu.com','百度')

          range.color = (128,128,128) RGB通道顏色,可獲取or設(shè)置

          range.row/column 獲取第幾行/列,注意是第幾而不是下標(biāo)

          range.formula 可以設(shè)置計(jì)算表達(dá)式,用來進(jìn)行表內(nèi)計(jì)算

          range.current_region 返回當(dāng)前range所在區(qū)域的區(qū)域表達(dá),這個(gè)比較難描述,好比一個(gè)Excel中互相連接的單元格都是連城一片,兩個(gè)片之間沒有任何相鄰就是互相獨(dú)立的。

          range.count 返回這個(gè)range中共有多少單元格,合并單元格仍然按未合并的算

          range.offset(a,b) 獲取到當(dāng)前range向右a格,向下移動(dòng)b格同樣大小的那片區(qū)域,ab可以為負(fù)值

          range.rows/columns 返回行/列的各個(gè)range對象

          range.expand

          參考案例代碼:

          批量寫入并讀取數(shù)據(jù)

        import xlwings as xw

        wb = xw.Book()
        sht = wb.sheets.active
        # 向工作表中寫入行列值
        for i in range(1, 6):
            for j in range(1, 6):
                sht.range(i, j).value = '({}, {})'.format(i, j)
        print(sht.range((1, 1), (5, 5)).expand().value)  # 批量讀取
        print(sht.range(1, 1).expand('right').value)  # 按行讀
        print(sht.range(1, 1).expand('down').value)  # 按列讀
        wb.close()

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少9294

         

          提前設(shè)置好表格的顏色,如圖

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少9311

         

          import xlwings as xw

          from itertools import product

          app = xw.App(visible=False) # 隱藏Excel

          wb = app.books.open('test.xlsx') # 打開工作簿

          sht = wb.sheets['Sheet1'] # 實(shí)例化工作表

          for cell in list(map(''.join, product('ABCDEFGH', '1'))): # A1 B1 C1 D1 E1 F1 G1 H1

          print(cell, sht.range(cell).color) # 填充顏色

          wb.close()

          局中插入圖片

         

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少9633

         

          截屏2021-11-22 下午8.40.22

          import os

          import xlwings as xw

          wb = xw.Book()

          sht = wb.sheets['Sheet1']

          rng = sht.range('A1')

          fileName = os.path.join(os.getcwd(), 'aa.png')

          width, height = 120, 100 # 指定圖片大小

          left = rng.left + (rng.width - width) / 2 # 居中

          top = rng.top + (rng.height - height) / 2

          sht.pictures.add(fileName, left=left, top=top, width=width, height=height)

          wb.save('test2.xlsx')

          wb.close()

          綜合案例:

          import xlwings as xw

          wb = xw.Book()

          sht = wb.sheets[0]

          info_list = [['110202111111234','帳篷',5],

          ['110202111118891','行李箱','16'],

          ['110202111111004','微波爐','20'],

          ['110202111132741','電冰箱','13'],

          ['110202111109852','樂事薯片','30'],

          ['110202111112030','魯花花生油','12'],

          ['110202111190391','羽絨服','9'],

          ['110202111122319','防曬霜','18'],

          ]

          # 寫入表頭

          titles = [['商品編號(hào)','商品名稱','數(shù)量']]

          sht.range('a1').value = titles

          # 寫入數(shù)據(jù)

          sht.range('a2').value = info_list

          # 保存數(shù)據(jù)

          wb.save('goods.xlsx')

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少10521

         

          若想更新里面的數(shù)據(jù),由于有些商品被賣出,商品數(shù)量就會(huì)發(fā)生變化。另外還有一批貨是新引入的。參考代碼如下:

          import xlwings as xw

          wb = xw.Book()

          sht = wb.sheets[0]

          info_list = [['110202111111234','帳篷','5'],

          ['110202111118891','行李箱','16'],

          ['110202111111004','微波爐','20'],

          ['110202111132741','電冰箱','13'],

          ['110202111109852','樂事薯片','30'],

          ['110202111112030','魯花花生油','12'],

          ['110202111190391','羽絨服','9'],

          ['110202111122319','防曬霜','18'],

          ]

          # 寫入表頭

          titles = [['商品編號(hào)','商品名稱','數(shù)量']]

          sht.range('a1').value = titles

          # 寫入數(shù)據(jù)

          sht.range('a2').value = info_list

          # 保存數(shù)據(jù)

          wb.save('goods.xlsx')

          # 讀取數(shù)據(jù)

          goods_list = sht.range('a2').expand('table').value

          for goods in goods_list:

          goods[0] = str(int(goods[0]))

          goods[2] = int(goods[2])

          print(goods_list)

          new_info = [['110202111111234','帳篷',5],

          ['110202111118891','行李箱',16],

          ['110202111111004','微波爐',20],

          ['110202111132741','電冰箱',10],

          ['110202111124660','羊毛衫',8],

          ['110202111109852','樂事薯片',10],

          ['110202111112030','魯花花生油',12],

          ['110202111190391','羽絨服',0],

          ['110202111122319','防曬霜',9],

          ['110202111124560','牛仔褲',18],

          ['110202111134798','老爹鞋',11]]

          # 去重

          extra = [i for i in new_info if i not in goods_list]

          # print(extra)

          # 讀取extra每個(gè)商品的包裹號(hào),判斷是否存在并更新,然后添加

          ids = sht.range(2, 1).expand('down').value

          ids = [str(int(id)) for id in ids]

          rows = len(sht.range('a2').expand('table').value)

          # 更新已有數(shù)據(jù)的庫存

          for goods in extra:

          if goods[0] in ids:

          row_number = ids.index(goods[0])

          print(row_number,goods[1])

          sht[row_number+1,2].value = goods[2]

          else:

          for i in range(3):

          sht[rows+1,i].value =goods[i]

          rows+=1

          wb.save('goods.xlsx')

          結(jié)果:

        全網(wǎng)最全Xlwings使用,配套案例一個(gè)不少12101

         

          更多關(guān)于python培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢想。

        tags:
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        抖音招商團(tuán)長托管服務(wù)費(fèi)怎么退回來

        抖音招商團(tuán)長托管服務(wù)是抖音為有意愿創(chuàng)作內(nèi)容并帶動(dòng)其他創(chuàng)作者成為團(tuán)隊(duì)成員的用戶提供的一種服務(wù)。通過該服務(wù),招商團(tuán)長可以自主組建團(tuán)隊(duì)并得到...詳情>>

        2023-10-08 16:08:53
        抖音小店怎么做代銷

        抖音已經(jīng)成為了一個(gè)非常受歡迎的短視頻應(yīng)用程序,在其中許多用戶都精心打造了自己的小店,用于銷售各種各樣的商品,獲取額外的收入。然而,要想...詳情>>

        2023-10-08 15:28:41
        怎樣開抖音小店帶貨賺錢

        隨著直播帶貨的火熱,越來越多的人開始嘗試通過抖音小店來開展帶貨業(yè)務(wù)。抖音小店是抖音直播帶貨的配套,可以讓用戶在購買直播中產(chǎn)品時(shí)就實(shí)現(xiàn)購...詳情>>

        2023-10-08 15:06:36
        能不能幫我打開抖音小店店鋪呢怎么弄

        抖音小店是近年來非?;鸨囊粋€(gè)網(wǎng)絡(luò)業(yè)務(wù),也是提供了很多商業(yè)機(jī)會(huì)的平臺(tái)。對于一個(gè)創(chuàng)業(yè)者而言,開設(shè)抖音小店是一個(gè)不錯(cuò)的選擇。但是,許多小店...詳情>>

        2023-10-08 15:01:21
        藍(lán)v抖音小店怎么開通店鋪

        藍(lán)v抖音小店是一個(gè)非常熱門的電商平臺(tái),它可以讓賣家在抖音上開設(shè)自己的店鋪,從而出售自己的商品。隨著抖音的不斷發(fā)展壯大,越來越多的賣家希...詳情>>

        2023-10-08 14:51:53
        通州市| 乌拉特后旗| 开阳县| 武乡县| 巴彦县| 临沧市| 开阳县| 马龙县| 崇义县| 盐池县| 盈江县| 乡宁县| 呼玛县| 临泽县| 固镇县| 岚皋县| 葫芦岛市| 大埔区| 孟连| 武清区| 中西区| 洞口县| 沧州市| 象州县| 东兰县| 翁源县| 遂平县| 安陆市| 台中县| 嘉兴市| 临桂县| 仁寿县| 佳木斯市| 班玛县| 千阳县| 丹寨县| 闸北区| 仁化县| 肃宁县| 德兴市| 泰兴市|