excel助手

学校特殊需要,需要打表跳行的数据,直接复制不行

# -*- coding: UTF-8 -*-
import xlwt
import configparser
from xlrd import open_workbook
from xlutils.copy import copy
def write_text(readE,writeE,FY,FX,sheet,interval):
    if FY == -1:
        FY = 0
    n = 0
    first = 0
    next1 = 0
    f = open('data.txt','r',encoding='utf-8')
    write_data = f.read()
    f.close()
    write_data_list = write_data.split('\n')
    data_lines = len(write_data_list)
    read_excel = open_workbook(readE)
    write_excel = copy(read_excel)
    sheet1 = write_excel.get_sheet(sheet)
    if interval == 0:
        for x in range(FY,FY + data_lines):
            sheet1.write(x,FX,write_data_list[n]) # 1:纵坐标 2:横坐标 3:内容 
            n = n + 1
    else:
        for y in range(FY,FY + data_lines):
            if first == 0:
                sheet1.write(y,FX,write_data_list[n])
                first = 1
                next1 = y + interval + 1
                n = n + 1
            elif first == 1:
                sheet1.write(next1,FX,write_data_list[n])
                next1 = next1 + interval + 1
                n = n + 1
    write_excel.save(writeE)# 写出文件
    print('[INFO]:写出成功:' + writeE)
def write_float(readE,writeE,FY,FX,sheet,interval):
    if FY == -1:
        FY = 0
    n = 0
    first = 0
    next1 = 0
    f = open('data.txt','r',encoding='utf-8')
    write_data = f.read()
    f.close()
    write_data_list = write_data.encode('utf-8').decode('utf-8-sig').split('\n')
    
    data_lines = len(write_data_list)
    read_excel = open_workbook(readE)
    write_excel = copy(read_excel)
    sheet1 = write_excel.get_sheet(sheet)
    if interval == 0:
        for x in range(FY,FY + data_lines):
            sheet1.write(x,FX,float(write_data_list[n])) # 1:纵坐标 2:横坐标 3:内容 
            n = n + 1
    else:
        for y in range(FY,FY + data_lines):
            if first == 0:
                sheet1.write(y,FX,float(write_data_list[n]))
                first = 1
                next1 = y + interval + 1
                n = n + 1
            elif first == 1:
                sheet1.write(next1,FX,float(write_data_list[n]))
                next1 = next1 + interval + 1
                n = n + 1
    write_excel.save(writeE)# 写出文件
    print('[INFO]:写出成功:' + writeE)
if __name__ == '__main__':
    config = configparser.ConfigParser()
    config.read('config.txt')
    RE = config.get('config','RE')
    WE = config.get('config','WE')
    type1 = config.get('config','type')
    sheet = config.getint('config','sheet')
    F_Y = config.getint('config','F_Y') - 1
    F_X = config.getint('config','F_X')
    interval = config.getint('config','interval')
    print('[INFO]:' + RE,WE,sheet,F_Y,F_X,interval)
    if type1 == 'float':
        write_float(RE,WE,F_Y,F_X,sheet,interval)
    else:
        write_text(RE,WE,F_Y,F_X,sheet,interval)

目前只支持锁定水平行,输入竖直列的功能,还有待改进