【问题标题】:How to save excel file on android which is built using kivy app?如何在使用 kivy 应用程序构建的 android 上保存 excel 文件?
【发布时间】:2022-12-11 16:15:30
【问题描述】:

谁能帮我解决这个问题……我是 kivy 的新手,我已经使用 python 的 kivy 框架开发了一个应用程序。我在其中使用 xlsxwriter 创建 excel 文件。但令人困惑的是,当我在我的 Windows 上运行它时,excel 文件被创建并自动保存到本地 python 包含的文件夹中,我将其命名为文本输入。但不幸的是,当我通过 google colab 使用 buildozer 将其构建为应用程序时,它无法正常工作。我的意思是该应用程序正在运行,但是当我单击保存按钮时,什么也没有发生。我在我手机的所有文件浏览器中搜索了 excel 文件。但它无处...

谁能帮我解决这个问题。和提前致谢...

这是“main.py”python 文件:

from kivy.app import App
from kivy.properties import StringProperty
from kivy.uix import label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.popup import Popup
import xlsxwriter


class Boxlayoutexam(BoxLayout):
    my_text=StringProperty('Data Acquisition to be started')
    def on_button_click(self):
        self.my_text='Data Acquisition started'


class StartPopup(Popup):
    def on_yes_button_click(self):
        my_textinput = self.ids.my_textinput.text

        workbook= xlsxwriter.Workbook(my_textinput+'xlsx')
        worksheet=workbook.add_worksheet('Diabetic Data')
        workbook.close()


class myapp(App):
    pass

myapp().run()

这是 'myapp'.kv kivy 文件:

#:import Factory kivy.factory.Factory
Boxlayoutexam:

<YesPopup@Popup>:
    auto_dismiss: True
    title: 'FILE SAVED'
    size_hint:0.6,0.6
    BoxLayout:
        orientation:'vertical'
        Image:
            source: "greentick.png"
            allow_stretch: True
            size_hint:1.0,0.7
        Label:
            text: 'YOUR FILE GOT SAVED!'
            font_size: 24
            size_hint:1.0,0.3



<StartPopup@Popup>:
    auto_dismiss: False
    title: 'SAVE THE FILE'
    size_hint:0.6,0.6

    GridLayout:
        cols:1
        Label:
            text:'Do you want to save the file?'
            font_size: 24
            size_hint:1.0,0.5

        TextInput:
            id: my_textinput
            size_hint:1.0,1.0
            font_size: 30
            multiline: False

        BoxLayout:
            Button:
                text:'YES'
                font_size: 24
                size_hint:1.0,1.0
                on_press: Factory.YesPopup().open()
                on_press: root.on_yes_button_click()

            Button:
                text:'NO'
                font_size: 24
                size_hint:1.0,1.0
                on_release: root.dismiss()

<Boxlayoutexam>:
    orientation:'vertical'
    Label:
        text:'Real time data acquistion'
        size_hint:1.0,0.8

    Label:
        text:root.my_text
        size_hint:1.0,0.1
    Button:
        text:'START'
        font_size:30
        size_hint:1.0,0.2
        on_press:root.on_button_click()
        on_release: Factory.StartPopup().open()

【问题讨论】:

  • 请提供足够的代码,以便其他人可以更好地理解或重现问题。

标签: python android kivy xlsxwriter


【解决方案1】:

您没有为输出设置路径,这意味着该文件可能保存在应用程序私有目录中,因此您无法访问它。

您需要提供的路径:

/storage/emulated/0/the folder where you want to save xlsx

/storage/emulated/0 is universally accepted path on android phones

请记住在 buildozer.spec 中添加存储权限并使用权限

MANAGE_EXTERNAL_STORAGE

【讨论】:

    猜你喜欢
    • 2015-01-08
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多