日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

excel python插件_利用 Python 插件 xlwings 读写 Excel

發布時間:2023/12/15 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 excel python插件_利用 Python 插件 xlwings 读写 Excel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python 通過 xlwings 讀取 Excel 數據

去年底公司讓我做設備管理,多次委婉拒絕,最終還是做了。其實我比較喜歡技術。做管理后發現現場沒有停機率統計,而原始數據有,每次要自己在Excel中填寫數據,感覺特麻煩了,就寫了這個自動化操作Excel的程序,以前要半天的工作量,用Python不到10s。程序比較簡單,直接上程序。

# -*- coding: utf-8 -*-

import xlwings as xw

import pandas as pd

from datetime import datetime

# 統計時間, 只有時間要改

START_TIME = '2018-07-01 00:00:00'

END_TIME = '2018-07-31 23:59:00'

START_ROW = 2 # 處理Excel文件開始行

END_ROW = 200 # 處理Excel結束行

# 天數 * 每天工作時間 * 分鐘

WORK_TIME = 30 * 22 * 60

# 關鍵設備清單

key_machine = ['609', '610', '621', '622', '623', '624',

'627', '628', '636', '638', '667', '670', '675', '689']

persons = ['張三', '李四', '王五']

app = xw.App(visible=True, add_book=False)

wb_source = app.books.open('downTimeData.xls') # 打開Excel文件 downTimeData.xls

sheet = wb_source.sheets[0] # 選擇第0個表單

# 需每月修改時間

start_datetime = datetime.strptime(START_TIME, '%Y-%m-%d %H:%M:%S') # 把開始統計時間轉換為DateTime

end_datetime = datetime.strptime(END_TIME, '%Y-%m-%d %H:%M:%S') # 把結束統計時間轉換為DateTime

result = []

for row in range(START_ROW, END_ROW):

row_content = []

row_str = str(row)

time_str = sheet.range('C' + row_str).value.strip()

create_datetime = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')

if start_datetime <= create_datetime <= end_datetime:

machine = sheet.range('A' + row_str).value

machine_number = machine[-4:-1]

if machine_number in key_machine:

if sheet.range('G' + row_str).value.strip() in persons:

row_content.append(machine_number)

row_content.append(create_datetime)

response_time_str = sheet.range('D' + row_str).value

complete_time_str = sheet.range('E' + row_str).value

row_content.append(response_time_str + complete_time_str)

solution_str = sheet.range('H' + row_str).value.strip()

row_content.append(solution_str)

comments = sheet.range('I' + row_str).value.strip()

row_content.append(comments)

result.append(row_content)

# count the times and downtime on the same machine and put it in dictionary

# 統計每臺設備的停機次數

dict_result = {}

for _, [name, _, downtime, _, _] in enumerate(result):

if name in dict_result:

dict_result[name] = (dict_result[name][0] + 1,

dict_result[name][1] + downtime)

else:

dict_result[name] = (1, downtime)

# fill the result and write it on excel

target_name = START_TIME[5:7]

wb_target = app.books.open('analysis2018.xlsx') # 打開Excel文件,把結果寫入

index = 3

for key in key_machine:

if key not in dict_result:

wb_target.sheets[target_name].range('B' + str(index)).value = 0

wb_target.sheets[target_name].range('C' + str(index)).value = 0

wb_target.sheets[target_name].range('D' + str(index)).value = WORK_TIME

wb_target.sheets[target_name].range('E' + str(index)).value = 0

wb_target.sheets[target_name].range('F' + str(index)).value = 0

else:

wb_target.sheets[target_name].range(

'B' + str(index)).value = dict_result[key][0]

wb_target.sheets[target_name].range(

'C' + str(index)).value = dict_result[key][1]

wb_target.sheets[target_name].range(

'D' + str(index)).value = (WORK_TIME - dict_result[key][1]) / dict_result[key][0]

wb_target.sheets[target_name].range(

'E' + str(index)).value = dict_result[key][1] / dict_result[key][0]

wb_target.sheets[target_name].range(

'F' + str(index)).value = dict_result[key][1] / WORK_TIME

index += 1

# write the comment and solution on excel

result.sort() # 故障信息排序,用于最后輸出

df = pd.DataFrame(result, columns=['編號',

'故障時間',

'停機時間', '解決方案', '備注'])

wb_target.sheets[target_name].range('H2').value = df

wb_target.sheets[target_name].autofit('c')

Python使用openpyxl讀寫excel文件

Python使用openpyxl讀寫excel文件 這是一個第三方庫,可以處理xlsx格式的Excel文件.pip install openpyxl安裝.如果使用Aanconda,應該自帶了. 讀取E ...

【轉發】Python使用openpyxl讀寫excel文件

Python使用openpyxl讀寫excel文件 這是一個第三方庫,可以處理xlsx格式的Excel文件.pip install openpyxl安裝.如果使用Aanconda,應該自帶了. 讀取E ...

Python用openpyxl讀寫Excel

openpyxl是一個用于讀寫Excel 2010 xlsx文件的python庫.openpyxl官方文檔:https://openpyxl.readthedocs.io/en/stable/ 一.安 ...

python xlrd&comma;xlwt 讀寫excel文件

python 讀excel文件,需要xlrd庫.下載地址:https://pypi.python.org/pypi/xlrd python 寫excel文件,需要xlwt庫.下載地址:https:// ...

用插件NPOI讀寫excel

1.用插件NPOIusing NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.HSSF.UserModel; public class E ...

Python用Pandas讀寫Excel

Pandas是python的一個數據分析包,納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具.Pandas提供了大量能使我們快速便捷地處理數據的函數和方法. Pandas官方文檔 ...

python 單元測試&lowbar;讀寫Excel及配置文件(八)

一.安裝openpyxl模塊 openpyxl模塊:是用于解決Excel(WPS等均可使用)中擴展名為xlsx/xlsm/xltx/xltm的文件讀寫的第三方庫.xls文件要使用xlwt .wlrd兩 ...

利用NPOI開源的讀寫Excel、WORD等微軟OLE2組件讀寫execl,控制樣式或單元格

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

Python 使用 xlwings 往 excel 中寫入一行數據的兩種方法

該方法跟上一篇寫入一列的方法相反,代碼如下: # -*- coding:utf-8 -*- import xlwings as xw list1 = [1,2,3,4,5] list2 = [[1], ...

隨機推薦

spring mvc 和spring security配置 web&period;xml設置

<?xml version="1.0" encoding="UTF-8"?>

源碼深度解析SpringMvc請求運行機制(轉)

源碼深度解析SpringMvc請求運行機制 本文依賴的是springmvc4.0.5.RELEASE,通過源碼深度解析了解springMvc的請求運行機制.通過源碼我們可以知道從客戶端發送一個URL請 ...

【Java學習筆記】Hello world

package aaa; public class aaa { public static void main(String args[]){ System.out.println("hel ...

RedHat7上安裝PHP

編譯安裝PHP 下載PHP# wget?http://cn2.php.net/distributions/php-7.0.0.tar.gz 解壓縮PHP# tar -zxvf?php-7.0.0.ta ...

SQL Server 性能調優 之運行計劃(Execution Plan)調優

運行計劃中的三種 Join 策略 SQL Server 存在三種 Join 策略:Hash Join,Merge Join,Nested Loop Join. Hash Join:用來處理沒有排過序/ ...

Android項目---TouchListener

public static interface View.OnTouchListener android.view.View.OnTouchListener Known Indirect Subcla ...

C&num;函數式程序設計之泛型

Intellij修改archetype Plugin配置 2014-03-16 09:26 by 破狼,?204?閱讀,?0?評論,收藏,?編輯 Maven archetype plugin為我們提供 ...

QT第六天學習

基本事件: 鼠標事件 鍵盤事件 繪制事件 1.QT中的事件: 事件是對各應用程序需要知道的由應用程序內部或外部產生的事情或動作的通稱. QT中事件的處理: 在QT中使用一個對象來表示一個事件,繼承自Q ...

總結

以上是生活随笔為你收集整理的excel python插件_利用 Python 插件 xlwings 读写 Excel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。