91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么利用Python批量處理行、列和單元格

發布時間:2021-09-06 13:43:47 來源:億速云 閱讀:132 作者:小新 欄目:開發技術

這篇文章主要介紹了怎么利用Python批量處理行、列和單元格,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

    精確調整工作表的行高和列寬

    步驟

    1. 打開工作簿。

    2. 遍歷所有工作表

    核心代碼

    for i in workbook.sheets:
    	value = i.range('A1').expand('table')
    	value.column_width = 12
    	value.row_height = 20
    workbook.save()

    批量更改多個工作簿的數據格式

    步驟:

    1. 列出文件夾中所有子文件

    2. 遍歷打開子文件

    3. 遍歷工作表

    4. 獲取工作表的最后一行

    5. 將指定列從上到下修改

    核心代碼

    #遍歷工作表
    for j in workbook.sheets:
    	# 獲取最后一行
    	row_num = j['A1'].current_region.last_cell.row
    	# 數據格式修改
    	j['A2:A{}'.format(row_num)].number_format = 'm/d'
    	j['D2:D{}'.format(row_num)].number_format = '¥#,##0.00'
    workbook.save()
    workbook.close()

    使用xwings模塊中的number format屬性來設置單元格區域中數據的格式。該屬性的取值為一個代表特定格式的字符串,與Excel的“設置單元格格式”

    對話框中“數字”選項卡下設置的格式對應。

    批量更改工作簿的外觀格式

    難點應該是外觀格式如何更改了吧,這里介紹一些常用的外觀格式。

    j 是工作表

    設置字體格式

    修改字體為宋體
    j['A1:H1'].api.Font.Name = '宋體'
    修改字號
    j['A1:H1'].api.Font.Size= 10  # 10磅
    字體加粗
    j['A1:H1'].api.Font.Bold= True
    字體顏色
    # 白色
    j['A1:H1'].api.Font.Color= xw.utils.rgb_to_int((255,255,255))
    單元格填充顏色
    # 填充顏色為黑色
    j['A1:H1'].Color= xw.utils.rgb_to_int((0,0,0))
    對齊方式
    # 水平對齊方式為 居中
    j['A1:H1'].api.HorizontalAlignment = xw.constants.HAlign.xlHAlignCenter
    
    # 垂直對齊方式為 居中
    j['A1:H1'].api.VerticalAlignment= xw.constants.VAlign.xlVAlignCenter

    以上是一列的如果是正文,j['A1:H1']變成 j['A2'].expand('table') 就可以了

    添加合適粗細的邊框
    # 遍歷所有的單元格
    for cell in j['A1'].expand('table'):
    	for b in range(7,12):
    		# 設置單元格的邊框線型
    		cell.api.Borders(b).LineStyle = 1
    		# 設置單元格的邊框粗細
    		cell.api.Borders(b).Weight = 2

    替換工作簿的行數據

    核心代碼

    # 遍歷工作表
    for j in eorkbook.sheets:
    	# 獲取工作表數據
    	value = j['A2'].expand('table').value
    	#按行遍歷工作表數據
    	for index,val in enumerate(value):
    		# 判斷行數據是否是這個
    		if val == ['背包',16,65]:
    			# 是的話替換為新數據
    			value[index] = ['雙肩包',36,79]
    	#將完成替換的數據寫入工作表中
    	j['A2'].expand('table').value = value
    workbook.save()

    enumerate()是Python的內置函數,用于將一個可遍歷的數據對象(如列表、元組或字符串等)組合為一個索引序列,可同時得到數據對象的索引及對應的值,一般用在for語句當中。該函數的語法格式和常用參數含義如下。

    enumerate(sequenxe,[start=0])
    # start 是索引的起始位置

    如果是修改指定行什么辦呢?因為列是在行的第幾個單元格中我們可以按如下代碼進行修改

    #按行遍歷工作表數據
    for index,val in enumerate(value):
    	# 修改第三個單元格,即第index行,第 3列,下標是從0開始的
    	val[2] = val[2] + 1
    	# 替換整行數據
    	value[index] = val

    提取指定數據

    import xlwings as xw
    import pandas as pd
    app = xw.App(visible = False, add_book = False) 
    workbook = app.books.open('采購表.xlsx')  
    worksheet = workbook.sheets
    data = []
    for i in worksheet:
        values = i.range('A1').expand().options(pd.DataFrame).value
        # 一次性提取工作表中所有符合條件的行數據
        filtered = values[values['采購物品'] == '復印紙'] 
        if not filtered.empty: 
            data.append(filtered)
    new_workbook = xw.books.add() 
    new_worksheet = new_workbook.sheets.add('復印紙') 
    new_worksheet.range('A1').value = pd.concat(data, ignore_index = False) 
    new_workbook.save('復印紙.xlsx')
    workbook.close()
    app.quit()

    提取列數據

    import xlwings as xw
    import pandas as pd
    app = xw.App(visible = False, add_book = False) 
    workbook = app.books.open('采購表.xlsx')
    worksheet = workbook.sheets 
    column = ['采購日期', '采購金額']
    data = []
    for i in worksheet:
        values = i.range('A1').expand().options(pd.DataFrame, index = False).value
        filtered = values[column]  
        data.append(filtered)
    new_workbook = xw.books.add()  
    new_worksheet = new_workbook.sheets.add('提取數據') 
    new_worksheet.range('A1').value = pd.concat(data, ignore_index = False).set_index(column[0])
    new_workbook.save('提取表.xlsx') 
    workbook.close()
    app.quit()

    追加行數據

    import os
    import xlwings as xw
    newContent = [['雙肩包', '64', '110'], ['腰包', '23', '58']]
    app = xw.apps.add()
    file_path = '分部信息'  
    file_list = os.listdir(file_path)  
    for i in file_list:  
        if os.path.splitext(i)[1] == '.xlsx':  
            workbook = app.books.open(file_path + '\\' + i)  
            worksheet = workbook.sheets['產品分類表']
            values = worksheet.range('A1').expand()
            number = values.shape[0]  
            worksheet.range(number + 1, 1).value = newContent  
            workbook.save()
            workbook.close()
    app.quit()

    提取所有工作表的唯一值

    import xlwings as xw
    app = xw.App(visible = True, add_book = False)
    workbook = app.books.open('上半年銷售統計表.xlsx')
    data = []
    for i, worksheet in enumerate(workbook.sheets):
        values = worksheet['A2'].expand('down').value
        data = data + values
    data = list(set(data))
    data.insert(0, '書名')
    new_workbook = xw.books.add()
    new_worksheet = new_workbook.sheets.add('書名')
    new_worksheet['A1'].options(transpose = True).value = data
    new_worksheet.autofit()
    new_workbook.save('書名.xlsx')
    workbook.close()
    app.quit()

    感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么利用Python批量處理行、列和單元格”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    同江市| 金门县| 乌什县| 湘阴县| 安康市| 高台县| 延川县| 思南县| 芦山县| 铅山县| 饶阳县| 瑞丽市| 枝江市| 孝义市| 托克逊县| 凯里市| 枣强县| 溆浦县| 凤城市| 嘉黎县| 江都市| 四会市| 福海县| 建昌县| 绍兴市| 德保县| 莎车县| 伊宁市| 江达县| 左贡县| 德格县| 淮阳县| 新邵县| 孝义市| 阿拉善左旗| 万荣县| 屯门区| 镇巴县| 湖北省| 巴林右旗| 伊宁县|