如何在 Appengine 上使用 xlrd 读取 excel 文件

2024-02-24

我在 appengine 中使用 xlrd。我用烧瓶

我无法读取输入文件,并且它不断显示相同的错误消息

代码是

def read_rows(inputfile):
    rows = []
    wb = xlrd.open_workbook(inputfile)
    sh = wb.sheet_by_index(0)
    for rownum in range(sh.nrows):
        rows.append(sh.row_values(rownum))
    return rows

@app.route('/process_input/',methods=['POST','GET'])
def process_input():
  inputfile = request.files['file']
  rows=read_rows(request.files['file'])
  payload = json.dumps(dict(rows=rows))
  return payload

我意识到这可能是由于没有上传并将其保存为文件造成的。有什么解决方法吗?这也将帮助许多其他人。感谢任何帮助,谢谢

更新:找到了我在下面发布的解决方案。对于那些对使用 xlrd 感到困惑的人可以参考我发布的开源项目存储库。关键是传递文件内容而不是文件名


最终找到解决办法

我是这样做的。我没有保存文件,而是读取文件的内容并让 xlrd 读取它

def read_rows(inputfile):
  rows = []
  wb = xlrd.open_workbook(file_contents=inputfile.read())
  sh = wb.sheet_by_index(0)
  for rownum in range(sh.nrows):
    rows.append(sh.row_values(rownum))
  return rows

效果很好,并将 Excel 文件转换为 JSON 格式。如果你想输出 json,只需使用 json.dumps()。

完整的代码示例可以在以下位置找到https://github.com/cjhendrix/HXLator/blob/master/gae/main.py https://github.com/cjhendrix/HXLator/blob/master/gae/main.py它具有 xlrd 的完整实现以及如何处理数据。

谢谢指点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Appengine 上使用 xlrd 读取 excel 文件 的相关文章

随机推荐