Copy_Excel_To_Excel#--此脚本用于将目标表格写入新的表格--

#--此脚本用于将目标表格写入新的表格--
#!/usr/bin/python3
# -*-coding:utf-8-*-
#python读取Excel中单元格的内容返回的有5种类型ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
#显示单元格属性方法sheet.cell(row,col).ctype 
import xlrd
import os
from xlrd import xldate_as_tuple
from datetime import datetime
from xlwt import *
class Copy_Excel_to_Excel:
#------------------读数据---------------------------------
  fileName = "example.xlsx"
  def Get_Current_Path(self):
      path = os.getcwd()#os.getcwd() 方法用于返回当前工作目录,用作创建新excel文件的目录
      return path
  
  def read_data(self):
    bk = xlrd.open_workbook(self.fileName)
    #shxrange = range(bk.nsheets)
    try:
      sh = bk.sheet_by_name("Sheet1")
    except:
      print("没有对应的sheet")
    nrows = sh.nrows #获取行数
    ncols = sh.ncols #获取列数
    book = Workbook(encoding='utf-8')
    sheet = book.add_sheet('Sheet1') #创建一个sheet
    list_type = []
    for i in range(0,nrows):
      row_data = sh.row_values(i)
      #获取第i行第3列数据
      #sh.cell_value(i,3)
      #---------写出文件到excel--------
      #print ("-----正在写入 "+str(i)+" 行-----")
      for j in range(0,ncols):
          if sh.cell(i,j).ctype == 3:
              date = xldate_as_tuple(sh.cell(i,j).value,0)
              value = datetime(*date)
              sheet.write(i,j,str(value))
              #print(value)#测试打印时间数据
          else:
            sheet.write(i,j, label = sh.cell_value(i,j)) #向第i行第j列写入获取到的值
          if i == nrows - 1:#获取最后一行数据的数据类型
            list_type.append(sh.cell(i,j).ctype)
    #print("-----数据一共打印:" + str(nrows-1) + "行-----")
    #print("数据类型:")         
    #print(list_type)
    book.save("new.xls")
  
  def Run(self):
    self.read_data()
    path = self.Get_Current_Path()
    print(path)

 

转载于:https://www.cnblogs.com/dog-and-cat/p/11613822.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值