华南俳烁实业有限公司

python

當前位置:中華考試網(wǎng) >> python >> python編程基礎 >> 文章內(nèi)容

Python之xlwt和xlrd新建sheet

來源:中華考試網(wǎng)  [2020年11月5日]  【

  大量的數(shù)據(jù)處理起來總是讓人頭疼,既內(nèi)容雜亂還要分類,所以用xlwt和xlrd庫解決是個不錯的選擇。

  問題:

  把大量數(shù)據(jù)寫入excel表格(工作簿),數(shù)據(jù)分成三類,每一類放進一個sheet。

  參照了一個教程,這里用的是xlwt和xlrd。

  發(fā)現(xiàn)新建sheet的時候,前幾個sheet都被清空,內(nèi)容被覆蓋掉了,所以在此作了調(diào)整,設置全局變量xls_file,用于存儲工作簿。

  尤其注意以下兩行代碼,修復了這個問題:

  rb = xlrd.open_workbook(path, formatting_info=True)

  workbook = copy(rb)

  以下是完整代碼:

  

import xlrd

  import xlwt

  from xlutils.copy import copy

  global xls_file

  xls_file = xlwt.Workbook()

  def write_field_xls(path, sheet_name, value):

  # path:工作簿的路徑,sheet_name:第一個sheet的名稱,value二維數(shù)組,表示插入excel的數(shù)據(jù)

  # 第一次建立工作簿時候調(diào)用

  index = len(value) # 獲取需要寫入數(shù)據(jù)的行數(shù)

  # workbook = xlwt.Workbook() # 新建一個工作簿

  workbook = xls_file

  sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一個表格

  for i in range(0, index):

  for j in range(0, len(value[i])):

  sheet.write(i, j, value[i][j]) # 像表格中寫入數(shù)據(jù)(對應的行和列)

  workbook.save(path) # 保存工作簿

  print("xls格式表格寫入數(shù)據(jù)成功!")

  def write_sheet_xls(path, sheet_name, value):

  # 新建sheet的時候進行調(diào)用

  index = len(value) # 獲取需要寫入數(shù)據(jù)的行數(shù)

  # workbook = xlwt.Workbook() # 新建一個工作簿

  rb = xlrd.open_workbook(path, formatting_info=True)

  workbook = copy(rb)

  sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一個表格

  填寫下面表單即可預約申請免費試聽java課程!害怕學不會?助教全程陪讀,隨時解惑!擔心就業(yè)?一地學習,可全國推薦就業(yè)!

預約申請免費聽java課程

  • 地區(qū):
  • 姓名:
  • 手機:

  for i in range(0, index):

  for j in range(0, len(value[i])):

  sheet.write(i, j, value[i][j]) # 像表格中寫入數(shù)據(jù)(對應的行和列)

  workbook.save(path) # 保存工作簿

  print("xls格式表格寫入數(shù)據(jù)成功!")

  def write_excel_xls_append(path, value, sheet_index=0):

  # 新增數(shù)據(jù)的時候調(diào)用

  global xls_file

  global info_index

  index = len(value) # 獲取需要寫入數(shù)據(jù)的行數(shù)

  workbook = xlrd.open_workbook(path) # 打開工作簿

  # workbook = xls_file

  sheets = workbook.sheet_names() # 獲取工作簿中的所有表格

  worksheet = workbook.sheet_by_name(sheets[sheet_index]) # 獲取工作簿中所有表格中的的第一個表格

  rows_old = worksheet.nrows # 獲取表格中已存在的數(shù)據(jù)的行數(shù)

  new_workbook = copy(workbook) # 將xlrd對象拷貝轉化為xlwt對象

  new_worksheet = new_workbook.get_sheet(sheet_index) # 獲取轉化后工作簿中的第一個表格

  for i in range(0, index):

  for j in range(0, len(value[i])):

  new_worksheet.write(i+rows_old, j, value[i][j]) # 追加寫入數(shù)據(jù),注意是從i+rows_old行開始寫入

  new_workbook.save(path) # 保存工作簿

  info_index += 1

  print(info_index, "----追加---sheet--", sheet_index)

  以上就是Python中xlwt和xlrd新建sheet表格的方法。

責編:fushihao
  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學歷考試
公主岭市| 班玛县| 县级市| 图们市| 武平县| 突泉县| 邯郸市| 林芝县| 新密市| 滦平县| 通渭县| 大田县| 常州市| 扬州市| 鹿邑县| 天祝| 株洲市| 沙洋县| 江北区| 井研县| 文昌市| 衡东县| 亳州市| 柘荣县| 太仆寺旗| 荃湾区| 涪陵区| 乐昌市| 教育| 惠东县| 龙江县| 青铜峡市| 菏泽市| 巴马| 小金县| 肃宁县| 南岸区| 元阳县| 轮台县| 杭锦后旗| 博兴县|