V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sylvos
V2EX  ›  Python

python 怎样实现 get 请求打开 excel 表,然后 post 请求上传处理后的 excel 给服务器

  •  
  •   sylvos · 2016-12-27 19:48:32 +08:00 · 5238 次点击
    这是一个创建于 2885 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用 python 怎样实现 get 请求打开一张 excel 表,然后用 post 请求上传处理后的 excel 表,不知道有没有表达清楚,请前辈指点。
    29 条回复    2020-06-17 07:21:16 +08:00
    ty89
        1
    ty89  
       2016-12-27 19:50:38 +08:00
    不知所云
    abc950309
        2
    abc950309  
       2016-12-27 19:51:37 +08:00
    xlrd 和 xlwt ,以前需要 2003 格式,现在<i>据说</i>2007 以上也可以了……
    tomczhen
        3
    tomczhen  
       2016-12-27 19:55:06 +08:00
    楼主又来提高搜索引擎效率了啊
    sylvos
        4
    sylvos  
    OP
       2016-12-27 19:57:51 +08:00
    @abc950309 请问是在 flask 视图函数中, return xlwt 写的 excel ,就可以在客户端弹出 excel 了吗?
    sylvos
        5
    sylvos  
    OP
       2016-12-27 20:01:42 +08:00
    就比如,我打开 www.exsample.com,结果是打开一张 excel 表,用户修改这张 excel 表后,可以上传给服务器处理,就是希望界面是 excel 而不是浏览器,可以实现吗
    wwqgtxx
        6
    wwqgtxx  
       2016-12-27 20:15:50 +08:00   ❤️ 1
    @sylvos 你可以看看有没有人做出来过嘛,就算微软自己也没实现这个功能呀,你可以自己用 HTML5 写一个仿 excel 界面的网页,想直接调用 excel 除非是 activex 插件这种已经淘汰的方式调用 excel 的 com 组件
    另外,这个和 Python 有半毛钱的关系么?
    sylvos
        7
    sylvos  
    OP
       2016-12-27 20:20:15 +08:00 via iPhone
    @wwqgtxx 谢谢指点
    xavierskip
        8
    xavierskip  
       2016-12-27 21:49:08 +08:00
    浏览器不能打开 Excel 表格,更别说修改上传了。不过你可以在网页中设计一个类似 Excel 表格的 web 表单,用户提交信息后你再在后端根据提交的数据生成一个 Excel 表格即可。

    前端表格库 Handsontable https://handsontable.com/
    后端处理 Excel 库 https://openpyxl.readthedocs.io
    heiybb
        9
    heiybb  
       2016-12-27 22:51:12 +08:00
    我怎么觉得楼主说的好像是这样的东西。。。
    example.com/download.php?filename=ABC.xlsx
    example.com/upload.php?filename=ABC_EDITED.xlsx
    jimzhong
        10
    jimzhong  
       2016-12-27 23:25:44 +08:00
    用 OWA 吧
    mingyun
        11
    mingyun  
       2016-12-27 23:38:53 +08:00
    ifaii
        12
    ifaii  
       2016-12-27 23:40:39 +08:00 via iPhone
    Office Online 吧
    est
        13
    est  
       2016-12-27 23:52:24 +08:00
    > python 怎样实现 get 请求打开 excel 表,然后 post 请求上传处理后的 excel 给服务器
    > 如何实现打开 url,读 sql,pandas 处理, excel 显示
    > flask 或 toanado ,视图函数里面的语句都可以被执行吗
    > 怎样才能够直接运行 python 脚本呢?
    > 用 pandas 操作 mysql 读写效率高吗
    > 请教:用 python 如何获取 excel 表的“保存”事件
    > window 下, python 的文件独占锁,有没有现成的库?
    > pandas 生成一列是另一列的累加结果,怎么做


    LZ 作业做完了么。。。。
    upczww
        14
    upczww  
       2016-12-27 23:56:15 +08:00 via Android
    希望大家以后不要再回答楼主的问题了,典型伸手党。
    popu111
        15
    popu111  
       2016-12-27 23:57:47 +08:00 via iPhone
    @est 看需求已经详细到这一步,估计马上就写完了
    icedx
        16
    icedx  
       2016-12-28 00:21:04 +08:00
    Blocked
    wwqgtxx
        17
    wwqgtxx  
       2016-12-28 00:58:02 +08:00
    @est 做了 103 天还没做完,心疼楼主一秒钟
    vmebeh
        18
    vmebeh  
       2016-12-28 01:25:21 +08:00
    用过一个 OA 有这个功能,不过是 .net 的
    coolair
        19
    coolair  
       2016-12-28 02:03:11 +08:00 via Android
    这个我做过,用第三方控件很简单
    sylvos
        20
    sylvos  
    OP
       2016-12-28 07:49:04 +08:00 via iPhone
    @coolair 请问下是什么控件呢?
    sylvos
        21
    sylvos  
    OP
       2016-12-28 07:56:22 +08:00 via iPhone
    像我这种菜鸟,搜索引擎不到答案,到这里来提问,能够得到大家的帮助,非常感激。如果觉得不屑,无需理会就是了,何必喷人呢。能够更直接的解决不同层次人的疑问,难道不是这个网站的价值吗?
    sylvos
        22
    sylvos  
    OP
       2016-12-28 07:59:31 +08:00 via iPhone
    @est 因为太菜了,做不下去,所以跑这里冒味问一些大家觉得很傻的问题
    coolair
        23
    coolair  
       2016-12-28 09:22:25 +08:00 via Android
    @sylvos ntko office
    MUTON
        24
    MUTON  
       2016-12-28 09:25:49 +08:00 via Android
    你把 excel 理解成数据库,打开网页的时候从数据库加载数据,修改后保存 @sylvos
    icris
        25
    icris  
       2016-12-28 10:24:38 +08:00
    abc950309
        26
    abc950309  
       2017-01-16 11:21:21 +08:00
    @sylvos 写到 ByteIO 里返回去。
    abc950309
        27
    abc950309  
       2017-01-16 11:24:19 +08:00
    @sylvos
    ```python
    wb = xlwt.Workbook()
    ws = wb.add_sheet('预算报表')
    row = [0]

    def write_line(line, *args):
    for index, text in enumerate(line):
    if not text:
    continue
    ws.write(row[0], index, text, *args)
    row[0] = row[0] + 1

    write_line([ '… blablabla …' ])
    for archive in archives:
    write_line([
    '… blablabla …'
    ])

    excel = io.BytesIO()
    wb.save(excel)

    excel = excel.getvalue()
    self.set_header('Content-Type', 'application/vnd.ms-excel')
    self.set_header('Content-Length', len(excel))
    self.write(excel)
    ```
    abc950309
        28
    abc950309  
       2017-01-16 11:25:41 +08:00
    @sylvos 这个是 Tornado 用的,你改下罢……
    Nougat
        29
    Nougat  
       2020-06-17 07:21:16 +08:00
    功能实现了吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3746 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 10:30 · PVG 18:30 · LAX 02:30 · JFK 05:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.