怎么做自動(dòng)報(bào)表表格數(shù)據(jù)報(bào)表自動(dòng)化)

      網(wǎng)友投稿 634 2023-01-24

      本篇文章給大家談?wù)勗趺醋鲎詣?dòng)化報(bào)表表格,以及數(shù)據(jù)報(bào)表自動(dòng)化對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 今天給各位分享怎么做自動(dòng)化報(bào)表表格的知識(shí),其中也會(huì)對(duì)數(shù)據(jù)報(bào)表自動(dòng)化進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!

      本文目錄一覽:

      excel怎么實(shí)現(xiàn)報(bào)表自動(dòng)化?

      python操作Excel實(shí)現(xiàn)自動(dòng)化報(bào)表
      賀霆
      賀霆
      算法工程師
      529 人贊同了該文章
      Excel作為日常辦公最廣泛使用的工具之一怎么做自動(dòng)化報(bào)表表格,學(xué)好它可以幫助怎么做自動(dòng)化報(bào)表表格我們節(jié)約時(shí)間,提升工作效率,學(xué)會(huì)靈活高效的使用excel有著十分重要的意義。
      本人覺(jué)得會(huì)使用大部分excel內(nèi)置公式和以及VBA的就是高手了。
      不過(guò)比這更高級(jí)的是用程序操作excel,針對(duì)相似性很高或者重復(fù)性、繁瑣的excel任務(wù)用一個(gè)程序可以實(shí)現(xiàn)一勞永逸,夸張的說(shuō)怎么做自動(dòng)化報(bào)表表格:可以節(jié)省你的生命 哈哈。
      以下是python操作excel的介紹:
      一、工具包
      1.xlrd:從Excel電子表格中提取數(shù)據(jù) doc地址:https://xlrd.readthedocs.io/en/latest/
      2.xlwt:將數(shù)據(jù)寫(xiě)入Excel電子表格 doc地址:https://xlwt.readthedocs.org/en/latest/
      3.xlutils:提供一組處理Excel文件的實(shí)用程序 doc地址:https://xlutils.readthedocs.io/en/latest/
      二、安裝
      python -m pip install xlrd xlwt xlutils
      三、基本用法
      python操作excel的相關(guān)工具包可以具體到操作指定單元格的填充樣式、數(shù)值類型、數(shù)值大小等等。然而python操作excel需要一定pandas數(shù)據(jù)處理功底,后續(xù)將補(bǔ)上章節(jié):pandas數(shù)據(jù)處理技能
      1.從指定文件路徑讀取excel表格,進(jìn)行一定操作,然后保存到另一個(gè)excel文件:result.xlsx
      import xlwt
      import xlrd
      from xlutils.copy import copy
      import pandas as pd
      from pandas import DataFrame,Series
      import os
      os.chdir('./')
      # 從指定文件路徑讀取excel表格
      df = pd.read_excel('D:/mypaper/data/data.xlsx')
      # 查看df內(nèi)容
      # 根據(jù)age算出出生年份,增加一列
      import datetime
      import os
      year = datetime.datetime.now().year#獲取當(dāng)前系統(tǒng)時(shí)間對(duì)應(yīng)的年份
      df['birth'] = year-df['age']
      df.to_excel('result.xlsx')#保存到當(dāng)前工作目錄,可以用os.getcwd()查看
      #查看下此時(shí)df的內(nèi)容,可以看到已經(jīng)生成了birth這一列
      乍看好像只用到了pandas,還沒(méi)有用到上面介紹的三個(gè)工具包,下面介紹利用python操作excel底層
      2.單元格操作
      # 定義方法:讀取指定目錄下Excel文件某個(gè)sheet單元格的值
      def excel_read(file_path,table,x,y):
      data = xlrd.open_workbook(file_path)
      table = data.sheet_by_name(table)
      return table.cell(y,x).value
      # 定義方法:?jiǎn)卧裰导皹邮?br/>write_obj_list = []
      def concat_obj(cols,rows,value):
      write_obj_list.append({'cols':cols,'rows':rows,'value':value,\
      'style':xlwt.easyxf('font: name 宋體,height 280;alignment: horiz centre')})
      # 定義方法:合并單元格
      def merge_unit(srows,erows,scols,ecols,value):
      write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,\
      'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋體,height 280;alignment: horiz centre')})
      # 定義方法:更新excel
      excel_update(file_path,write_obj_list,new_path):
      old_excel = xlrd.open_workbook(file_path, formatting_info=True)
      #管道作用
      new_excel = copy(old_excel)
      '''
      通過(guò)get_sheet()獲取的sheet有write()方法
      '''
      sheet1 = new_excel.get_sheet(0)
      '''
      1代表是修改第幾個(gè)工作表里,從0開(kāi)始算是第一個(gè)。此處修改第一個(gè)工作表
      '''
      for item in write_obj_list:
      if 'id' not in item.keys():
      if 'style' in item.keys():
      sheet1.write(item['rows'], item['cols'], item['value'],item['style'])
      else:
      sheet1.write(item['rows'], item['cols'], item['value'])
      else:
      if 'style' in item.keys():
      sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])
      else:
      sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])
      '''
      如果報(bào)錯(cuò) dict_items has no attributes sort
      把syle源碼中--alist.sort() 修改為---- sorted(alist)
      一共修改2次
      '''
      new_excel.save(file_path)
      #參數(shù)詳解
      # srows:合并的起始行數(shù)
      # erows:合并的結(jié)束行數(shù)
      # scols:合并的起始列數(shù)
      # ecols:合并的結(jié)束列數(shù)
      # value:合并單元格后的填充值
      # style:合并后填充風(fēng)格:
      # font: name 宋體
      # height 280;
      # alignment: horiz centre
      # ... 與excel操作基本保持一致
      注意:該方法僅僅是將需要直行的動(dòng)作保存到一個(gè)list中,真正的動(dòng)作還未執(zhí)行,執(zhí)行動(dòng)作是發(fā)生在excel_update方法中
      最終調(diào)用excel_update方法,傳入每個(gè)單元格需要進(jìn)行的操作和填充值的write_obj_list以及文件保存路徑file_path
      就可以在當(dāng)前工作目錄下生成想要的Excel結(jié)果文件。
      注意:
      1.write_obj_list支持用戶自定義
      2.write_obj_list也可以是根據(jù)excel_read方法讀取現(xiàn)有待修改的excel文件(可以維持原有表格的格式)而生成
      python操作excel還有很多其他的基本方法,因篇幅的限制不再陳述和演示,想要深入研究的可以點(diǎn)擊上面的doc地址

      如何自動(dòng)生成財(cái)務(wù)報(bào)表?

      如果你問(wèn)的是帶公式的利潤(rùn)表和資產(chǎn)負(fù)債表,是財(cái)務(wù)軟件。只要錄入每張憑證,自動(dòng)生成各種報(bào)表,你的單位應(yīng)該就有財(cái)務(wù)軟件。你可以去天空下一個(gè)金簿財(cái)務(wù)軟件3.5,操作很簡(jiǎn)單,可以自動(dòng)生成報(bào)表總明細(xì)賬。

      速達(dá)軟件都可以自動(dòng)生成財(cái)務(wù)報(bào)表,系統(tǒng)按企業(yè)所選擇的會(huì)計(jì)制度,為企業(yè)預(yù)設(shè)了一些自定義報(bào)表,如:資產(chǎn)負(fù)債表,利潤(rùn)表金流量表等等,3000系列軟件,在帳務(wù)菜單中可以找到‘自定義報(bào)表,財(cái)務(wù)系列與5000系列,在報(bào)表菜單中找到‘財(cái)務(wù)報(bào)表’財(cái)務(wù)報(bào)表中也有‘自定義報(bào)表’
      自定義報(bào)表除了系統(tǒng)提供的一些以外,還可以自已設(shè)計(jì)報(bào)表,用起來(lái)很方便。

      Python操作Excel實(shí)現(xiàn)自動(dòng)化報(bào)表

      Python操作Excel實(shí)現(xiàn)自動(dòng)化報(bào)表

      安裝

      python?-m?pip?install?xlrd?xlwt?xlutils。

      基本用法

      1.從指定文件路徑讀取excel表格,進(jìn)行一定操作,然后保存到另一個(gè)excel文件:result.xlsx

      import?xlwt
      import?xlrd
      from?xlutils.copy?import?copy
      import?pandas?as?pd
      from?pandas?import?DataFrame,Series
      import?os
      os.chdir('./')
      #?從指定文件路徑讀取excel表格
      df?=?pd.read_excel('D:/mypaper/data/data.xlsx')
      #?查看df內(nèi)容


      #?根據(jù)age算出出生年份,增加一列
      import?datetime
      import?os
      year?=?datetime.datetime.now().year#獲取當(dāng)前系統(tǒng)時(shí)間對(duì)應(yīng)的年份
      df['birth']?=?year-df['age']
      df.to_excel('result.xlsx')#保存到當(dāng)前工作目錄,可以用os.getcwd()查看
      #查看下此時(shí)df的內(nèi)容,可以看到已經(jīng)生成了birth這一列。


      2.單元格操作

      #?定義方法:讀取指定目錄下Excel文件某個(gè)sheet單元格的值
      def?excel_read(file_path,table,x,y):
      ?????data?=?xlrd.open_workbook(file_path)
      ?????table?=?data.sheet_by_name(table)
      ?????return?table.cell(y,x).value

      #?定義方法:?jiǎn)卧裰导皹邮?br/> write_obj_list?=?[]
      def?concat_obj(cols,rows,value):
      ????write_obj_list.append({'cols':cols,'rows':rows,'value':value,\
      'style':xlwt.easyxf('font:?name?宋體,height?280;alignment:?horiz?centre')})

      #?定義方法:合并單元格
      def?merge_unit(srows,erows,scols,ecols,value):
      ????write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,\
      'ecols':ecols,'value':value,'style':xlwt.easyxf('font:?name?宋體,height?280;alignment:?horiz?centre')})

      #?定義方法:更新excel
      excel_update(file_path,write_obj_list,new_path):
      ????old_excel?=?xlrd.open_workbook(file_path,?formatting_info=True)
      ????#管道作用
      ????new_excel?=?copy(old_excel)
      ????'''
      ????通過(guò)get_sheet()獲取的sheet有write()方法
      ????'''
      ????sheet1?=?new_excel.get_sheet(0)
      ????'''
      ????1代表是修改第幾個(gè)工作表里,從0開(kāi)始算是第一個(gè)。此處修改第一個(gè)工作表
      ????'''
      ????for?item?in?write_obj_list:
      ????????if?'id'?not?in?item.keys():
      ????????????if?'style'?in?item.keys():
      ????????????????sheet1.write(item['rows'],?item['cols'],?item['value'],item['style'])
      ????????????else:
      ????????????????sheet1.write(item['rows'],?item['cols'],?item['value'])
      ????????else:
      ????????????if?'style'?in?item.keys():
      ????????????????sheet1.write_merge(item['srows'],item['erows'],item['scols'],?item['ecols'],?item['value'],item['style'])
      ????????????else:
      ????????????????sheet1.write_merge(item['srows'],item['erows'],item['scols'],?item['ecols'],?item['value'])
      ????'''
      ???如果報(bào)錯(cuò)?dict_items?has?no?attributes?sort
      ????把syle源碼中--alist.sort()?修改為----?sorted(alist)?
      ????一共修改2次
      ????'''
      ????new_excel.save(file_path)

      #參數(shù)詳解
      #?srows:合并的起始行數(shù)
      #?erows:合并的結(jié)束行數(shù)
      #?scols:合并的起始列數(shù)
      #?ecols:合并的結(jié)束列數(shù)?
      #?value:合并單元格后的填充值
      #?style:合并后填充風(fēng)格:
      #?????font:?name?宋體
      #?????height?280;
      #?????alignment:?horiz?centre
      #?????...?與excel操作基本保持一致

      (注意:該方法僅僅是將需要直行的動(dòng)作保存到一個(gè)list中,真正的動(dòng)作還未執(zhí)行,執(zhí)行動(dòng)作是發(fā)生在excel_update方法中)

      最終調(diào)用excel_update方法,傳入每個(gè)單元格需要進(jìn)行的操作和填充值的write_obj_list以及文件保存路徑file_path,就可以在當(dāng)前工作目錄下生成想要的Excel結(jié)果文件。


      注意:
      1.write_obj_list支持用戶自定義
      2.write_obj_list也可以是根據(jù)excel_read方法讀取現(xiàn)有待修改的excel文件(可以維持原有表格的格式)而生成

      End

      關(guān)于怎么做自動(dòng)化報(bào)表表格和數(shù)據(jù)報(bào)表自動(dòng)化的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。 怎么做自動(dòng)化報(bào)表表格的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)報(bào)表自動(dòng)化、怎么做自動(dòng)化報(bào)表表格的信息別忘了在本站進(jìn)行查找喔。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:用excel如何做甘特圖(怎么用Excel制作甘特圖)
      下一篇:表格軟件excel升級(jí)(表格升級(jí)版)
      相關(guān)文章
      亚洲av之男人的天堂网站| 亚洲A∨精品一区二区三区下载| 亚洲国产91在线| 狠狠色香婷婷久久亚洲精品| 亚洲国产成人精品无码区在线观看| 亚洲视频在线一区二区| 国产成人精品日本亚洲11| 亚洲国产午夜精品理论片| 91亚洲国产成人久久精品网站| 久热综合在线亚洲精品| 亚洲AV无码专区在线播放中文 | 亚洲日韩中文字幕天堂不卡| 久久久久亚洲精品无码蜜桃| 久久亚洲AV成人出白浆无码国产| 亚洲狠狠综合久久| 麻豆亚洲AV永久无码精品久久| 亚洲国产女人aaa毛片在线 | 国产av无码专区亚洲av果冻传媒 | 久久精品国产亚洲| 亚洲AV无码国产精品麻豆天美| 亚洲精品一品区二品区三品区| 亚洲第一区精品观看| 亚洲人成无码www久久久| 亚洲欧美成aⅴ人在线观看| 亚洲爆乳少妇无码激情| 亚洲av日韩片在线观看| 久久99亚洲综合精品首页| 亚洲色婷婷综合久久| 亚洲成A人片在线观看无码不卡 | 亚洲AV永久无码精品一百度影院| 亚洲av日韩片在线观看| 国产综合亚洲专区在线| 综合一区自拍亚洲综合图区 | 亚洲一级毛片视频| 亚洲人成无码网站在线观看| 亚洲a无码综合a国产av中文| 亚洲人成无码www久久久| 亚洲av午夜福利精品一区人妖| 亚洲成A∨人片在线观看不卡| 久久精品国产亚洲AV电影| 久久亚洲sm情趣捆绑调教 |