鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: wqx285314590

[已解决]有偿请教大佬,如何利用python处理excel,有偿请教!

[复制链接]
 楼主| 发表于 2020-3-14 12:55:46 | 显示全部楼层
派生小生 发表于 2020-3-14 00:52
如果是想要x,y的数据一起的话就是这样

优秀!本来是想分别得到X/Y的表达式再自己合并,同时输出X,Y,没想到你直接做了。看了以后发现以我能力可能确实写不出来还是要请教你,多谢!!!另外,方便留一下微信或支付宝账号吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 17:30:05 | 显示全部楼层
wqx285314590 发表于 2020-3-14 12:23
感谢您的回复!还有一点不明白:
单独对比我用的
while count

while count<10:
        count+=1
        print(y)

for i in range(10):
        print(y)

都是打印10次y,但是用你的方法,如果你想第二次打印10次y的话,你要对count重新赋值为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 17:30:44 | 显示全部楼层
wqx285314590 发表于 2020-3-14 12:43
还有一个问题:
您的代码是通过if else进行x==0或x==3的切换,但是单独把相关的几行拎出来就只有一个输 ...

因为if else只会执行一次,循环靠的是while
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 17:31:43 | 显示全部楼层
wqx285314590 发表于 2020-3-14 12:55
优秀!本来是想分别得到X/Y的表达式再自己合并,同时输出X,Y,没想到你直接做了。看了以后发现以我能力可 ...

可以加微信:wx569673855
互相交流交流就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-15 12:36:19 | 显示全部楼层

多谢指点,把count重新赋值后跑通了,不过没有你的方法简介。
y=0
count=10
t=4
while t>0:
    if count==10:
        while count>0:
            count-=1
            print(y)
        y+=2
        t-=1
        count=10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 21:16:04 | 显示全部楼层
派生小生 发表于 2020-3-14 00:52
如果是想要x,y的数据一起的话就是这样

额,抱歉还想继续请教一下,python怎么读取excel,输出excel?比如还是上次的代码稍微改动,所有的input的内容都对应在excel中,有20组,希望能够自动读取相应位置的值,输出X,Y。不然手动分别输入这些数据,重复20次,得到的结果再粘贴20次,很浪费时间,谢谢!
a=float(input('x:'))
x_gap=float(input('x gap:'))

y=float(input('y:'))
y_gap=float(input('y gap:'))

j=0
column1=int(input('列数1:'))
column2=int(input('列数2:'))

row1=int(input('行数1:'))
row2=int(input('行数2:'))

x=a-x_gap
b=a+x_gap/2

while j<row1+row2:
    if x==a-x_gap:
        for i in range(column1):
            x+=x_gap
            print(x,y)
        x=b-x_gap
        y+=y_gap
        j+=1
    else:
        for i in range(column2):
            x+=x_gap
            print(x,y)
        x=a-x_gap
        y+=y_gap
        j+=1
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 15:59:54 | 显示全部楼层
import xlwt
import xlrd

def data_output(a,x_gap,y,y_gap,column1,column2,row1,row2,sheet1):
    j=0
    x=a-x_gap
    b=a+x_gap/2
    global index,lineNum
    
    print("第%d组数据写入中..." % index)
    while j<row1+row2:
        if x==a-x_gap:
            for i in range(column1):
                x+=x_gap
                #print("数据写入中:%d %.1f %.1f" %(index,x,y))
                list_temp = [0,index,x,y]
                lineNum += 1
                for k in range(1,4):
                    sheet1.write(lineNum,k-1,list_temp[k])
            x=b-x_gap
            y+=y_gap
            j+=1
        else:
            for i in range(column2):
                x+=x_gap
                #print("数据写入中:%d %.1f %.1f" %(index,x,y))
                list_temp = [0,index,x,y]
                lineNum += 1
                for k in range(1,4):
                    sheet1.write(lineNum,k-1,list_temp[k])
            x=a-x_gap
            y+=y_gap
            j+=1
    index += 1


if __name__ == "__main__":
    try:
        #print("PS:输入的文件名需要加上对应的文件后缀,.xls或者.xlsx")
        address_temp = input("请输入文件的地址:")       
        address = address_temp + ".xls"
        file_name = input("文件名保存为:") + ".xls"
        ExcelFile=xlrd.open_workbook(address)
    except FileNotFoundError as e:
        address = address_temp + ".xlsx"
        ExcelFile=xlrd.open_workbook(address)
    sheet=ExcelFile.sheet_by_index(0)
    rowsNum = sheet.nrows
    index = 1
    lineNum = 0

    f_wk = xlwt.Workbook() #创建工作簿
    sheet1 = f_wk.add_sheet('sheet1',cell_overwrite_ok=True) #创建sheet
    sheet1.write(0,0,"序号")
    sheet1.write(0,1,"x")
    sheet1.write(0,2,"y")

    for num in range(1,rowsNum):                   # 数据从第二行开始,读取每一行的内容
        rows=sheet.row_values(num) 
        a,x_gap,y,y_gap,column1,column2,row1,row2 = rows[1],rows[2],rows[3],rows[4],int(rows[5]),int(rows[6]),int(rows[7]),int(rows[8])
        data_output(a,x_gap,y,y_gap,column1,column2,row1,row2,sheet1)

    f_wk.save(file_name) #保存文件

    print("数据保存成功,保存名字为【%s】" % file_name)
    input("点击回车键退出。")
    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 06:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表