解决Abaqus数据写入Excel超过255列报错问题
这段是将abaqus的数据以没两行为一组一起写入excel的代码,但是写入的时候会出现数据超过255列报错的现象,想将这段代码添加一个判断条件,如果数据达到255列,则跳出写入excel的循环继续下次的循环内容:你可以在循环内添加一个判断条件,当列数超过255时,使用break语句跳出当前循环,进入下一次循环。以下是修改后的代码示例:\n\npython\nfor i in range(0, a12):\n # 创建变量表示第1个分析步\n step1 = odb.steps['Step-1']\n\n # 创建变量表示第1个分析步的最后一帧\n lastFrame = step1.frames[i]\n\n # 创建变量集 'FE',它属于部件实例PART-1-1\n center = odb.rootAssembly.instances['PART-1-1'] # 装配体中部件的名称,名字需要大写\n\n # 创建变量表示第1个分析步最后一帧的PEEQ\n strain = lastFrame.fieldOutputs['LE']\n stress = lastFrame.fieldOutputs['S']\n\n # 创建变量表示第1个分析步最后一帧集合FE,积分点的应变\n centerstrain = strain.getSubset(region=center, position=INTEGRATION_POINT)\n centerstress = stress.getSubset(region=center, position=INTEGRATION_POINT)\n z1 = 0\n z2 = 0\n # 统计\n for v in centerstrain.values:\n z1 = z1 + v.data[2] # .data[]输出的就是6个独立应力 0:x 、1:y 、2:z\n for v in centerstress.values:\n z2 = z2 + v.data[2] # .data[]输出的就是6个独立应力\n # print"平均应变:"\n z1 = z1 / len(centerstrain.values)\n z2 = z2 / len(centerstress.values)\n sheet1.write(2 * ii - 2, i, z1)\n sheet1.write(2 * ii - 1, i, z2)\n savepath = 'D:\abaqus\whp\excel1.csv' # 生成的excel存放的位置\n book.save(savepath)\n if i >= 254:\n break\n\n\n在上述代码中,当i的值大于等于254时,使用break语句跳出当前循环,进入下一次循环。这样可以确保数据不会超过255列。
原文地址: https://www.cveoy.top/t/topic/pO61 著作权归作者所有。请勿转载和采集!