Read Data from Google Sheet in MIT App Inventor (SUPER EASY) | Get Google Sheet Data in App Inventor

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024

Комментарии • 105

  • @gpTeacher
    @gpTeacher 3 месяца назад +2

    Thank you so much for this reading and the writing tutorials. I've built an App to read in a student class list and name the buttons on the app with their names. Then when I see a student distracted, I press their name button and pick a distraction from a list picker and then write out the record to a separate spreadsheet. Great for communicating with parents. Best wishes, Gord

  • @lifeisthrillingyt7991
    @lifeisthrillingyt7991 Год назад +2

    App development programs are getting more interesting day by day with the help of your tutorials. Thank you!

  • @shaimakiyani3206
    @shaimakiyani3206 Год назад +1

    With the help of your tutorials I have learned so much. I can only comment on how good your teaching skills are.

  • @adyamys5110
    @adyamys5110 Год назад +2

    It seems so hard when one hear all these terms but ur video makes it easy to understand

  • @uzmashahzad9061
    @uzmashahzad9061 Год назад +2

    Tremendous job! This video has all clear details in simplest way. Thanks for all the easy tutorials.

  • @mfalme254
    @mfalme254 Месяц назад +1

    Thank you Obsidian for the tutorial.
    The reason why I think the variable is local and not global is 2 fold:
    1. Scope
    We would want the variable to be active only in the context of pulling data from gsheet. Unless the variable is used in multiple instances there's no reason for it to be global.
    2. Memory
    The variable being local means it's only "alive" at that part of the code. Global variables are always alive. When I started appinventor I had many global variables declared at the start. It can get confusing/cumbersome to have so many variables declared globally. I ended up asking myself, "what was this for again?" after I hadn't seen the blocks after some time.
    Thoughts?

  • @shaimakiyani9096
    @shaimakiyani9096 Год назад +2

    Loving the consistency of your content... thank you for bringing amazing tutorial almost every week...

  • @simrakhursheed1205
    @simrakhursheed1205 Год назад +1

    Your explanation make it easy to understand. Keep up the good work

  • @tiffanyjohnson7427
    @tiffanyjohnson7427 Год назад +1

    This is really sooo easy!!! Wonderful explanation as always

  • @NowridHasninvlogzz
    @NowridHasninvlogzz Год назад +1

    You are doing a great job of making this tutorial easy.

  • @humairasadaf3019
    @humairasadaf3019 Год назад +1

    Wow, you make this so easy , before these things look so difficult for me but now Thanks to you 😊

  • @rajarani00182
    @rajarani00182 Год назад +1

    You make it so easy to understand thanks for sharing

  • @janjua245
    @janjua245 Год назад +1

    Amazing tutorial
    You are master of your field

  • @sammislearning
    @sammislearning 11 месяцев назад +1

    Thanks for bringing these amazing tutorials

  • @nubainzafar1578
    @nubainzafar1578 Год назад +1

    You have make it so easy to understand 👌

  • @sammislearning
    @sammislearning Год назад +1

    Amazing tutorial by amazing teacher

  • @binteidrees8277
    @binteidrees8277 Год назад +1

    Tremendous job, thanks for teaching this, it seems so easy now.

  • @ayedanasim5713
    @ayedanasim5713 Год назад +1

    Another cool video! Explained really well

  • @rubinakhq643
    @rubinakhq643 Год назад +1

    Amazing job dear!thnks for sharing informative tutorials

  • @binteidrees8277
    @binteidrees8277 Год назад +1

    You're doing a great job

  • @ΜάθημαΠληροφορικής-θ8ξ

    Great content thanks! How we can populate Detailed view section of the ListView item as well with this method?

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Месяц назад

      Instead of the join in the Web's gotText event, use Listview's createelement block. You can provide an empty text block instead of image name. Make sure that you have changed listview's properties in the designer view. Set the ListViewLayout property to MainText,Detailed Text (Horizontal) option. If this doesn't make sense, check out this link for correct usage of createelement block: community.appinventor.mit.edu/t/listview-createelement-method-use/40968/6

  • @lifewithmood
    @lifewithmood Год назад +1

    Veryy helpful tutorial💫

  • @vipu009
    @vipu009 11 месяцев назад +1

    Nicely explained. Could you please let us know why you used local variable in for each loop ?

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  11 месяцев назад +1

      It is because it is a temporary list that we need to reconstruct every time we load data. if we use a global variable instead, we will have to empty it manually every time before constructing it with sheet data otherwise it will contain double entries.

  • @athulican
    @athulican 11 месяцев назад +1

    Excellent! Thank you!

  • @panmaneecnc
    @panmaneecnc Год назад

    Excellent, you are a person who really understands the essence of programming. I have an idea. I would like to hire you to teach my son online. Is there any way to contact you ?, thank you.

  • @ayyanadam3889
    @ayyanadam3889 Год назад +1

    Amazing tutorial

  • @sammislearning
    @sammislearning 11 месяцев назад +1

    Tremendous job

  • @jinsonlearning
    @jinsonlearning 6 месяцев назад +1

    Hello Madam, I'm trying to create a call directory app for a community using MIT App Inventor. After watching your video, I found it very helpful and appreciate your effort. I would like to know how to retrieve only the values at index 3. In my case, index 2 contains names and index 3 contains phone numbers. When I click on a particular name in the list view, I want to navigate to my phone dial-up screen with the phone number associated with that name from index 3. Could you please explain how to implement this feature?

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  6 месяцев назад +1

      Is it necessary to have all the data in Google Sheets? If yes, then you will have to explore web apps for private Google sheets: ai2.metricrat.co.uk/guides/query-any-google-sheet-with-a-web-app
      and if the Google sheet is public then you can get specific data from it using this approach: developers.google.com/chart/interactive/docs/querylanguage?hl=en#setting-the-query-in-the-data-source-url
      You will need to use Activity Starter to open up the dial-up screen once you get the phone number.
      You have an interesting problem about getting specific data from Google Sheets so I have added it to my list of prospective tutorials and will try to publish a video soon.
      Good luck with your app!

    • @jinsonlearning
      @jinsonlearning 6 месяцев назад +1

      Ok, thank you

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  6 месяцев назад

      Most welcome 😊

  • @kongshiewchee3299
    @kongshiewchee3299 Год назад

    Thanks! The tutorial is helpful to my project!! May I know how should I export and analyze the data from the spreadsheet in graph form?

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад

      Most welcome 😊 I will publish tutorial for graphs soon but if you are in a hurry , try exploring the chart component.

  • @adyamy4052
    @adyamy4052 Год назад +1

    Really it's easy

  • @MoezRekik
    @MoezRekik Год назад +1

    Thanks ❤❤❤

  • @MoezRekik
    @MoezRekik Год назад +1

    ❤❤ Great job.
    Please how to read image and date from googlesheet. Thanks

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад +1

      Will do soon.. I am assuming that there will be image url with the image too for example a google drive link

    • @MoezRekik
      @MoezRekik Год назад

      I am preparing a school application. I prepared a screen to record student data (ID, Matricule, First and last name, Date of birth, Useful info, Photo).
      I want to call this info using "RecyclerView" (Photo and First & Last Name) and when I click on a student's photo it shows me all of their already saved data.
      Thank you for your cooperation and help.
      N.B: I used Cloudinary to save the photos.@@ObsidianSoftEducation

  • @souvikkumarbarua5557
    @souvikkumarbarua5557 9 месяцев назад +1

    How to make send and recive in different screens in same app for send and recive

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  9 месяцев назад

      You can have a menu screen with two buttons for sending and receiving. Pressing those buttons will further open up their own screens. And you can follow both my tutorials for sending and receiving. Another idea is to toggle between two screens without having a separate menu screen. I have done something like this in my alarm clock + timer tutorial. You can check that one out for guidance.

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  9 месяцев назад

      Send Data tutorial: ruclips.net/video/JQzDKuzyUoQ/видео.html

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  9 месяцев назад

      Alarm clock + timer tutorial: ruclips.net/video/txrjTCUbFmI/видео.html

  • @misduhsaja
    @misduhsaja 11 месяцев назад +1

    What is defferent between MIT app & kodular.
    Please! I am newbie.

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  11 месяцев назад +1

      Both are block-based programming languages for making apps. MIT App Inventor is. supported by MIT. The apps made through MIT App Inventor can also work on iPhones through a companion app although, at the moment, they can't be installed on iPhones as standalone apps. MIT App Inventor is 100% free. Kodular is built on MIT App Inventor and is more powerful than MIT App Inventor as you can make more complex apps in it but last I checked, the apps can't be tested on iPhones (the situation might have changed now). Also, recently Kodular has started charging a monthly fee for making apps bigger than 5 MB.

  • @MoezRekik
    @MoezRekik Год назад +1

    Great job. Hi, is there a method to upload a document (word, pdf, image...) to Google Drive with kodular?
    THANKS.

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад +1

      Remember that making a file explorer function in App Inventor is very difficult now due to storage access constraints of the latest Android versions. Hence, the document to be uploaded should already be inside your media. Then, I think it should be possible. Will try to make a tutorial soon.

    • @MoezRekik
      @MoezRekik Год назад

      @@ObsidianSoftEducation Thanks a lot..

  • @user-wz6xk8go6m
    @user-wz6xk8go6m 13 дней назад

    Helpful this video
    How to create update and delete Google sheet in this method ,?

  • @mfalme254
    @mfalme254 Месяц назад

    Question: How do I hide a row from being shown in the app (listview) after a click event?

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Месяц назад +1

      For hiding /deleting from listview, call listview.removeitematindex(listview.selectionindex).

    • @mfalme254
      @mfalme254 Месяц назад

      @@ObsidianSoftEducation thanks let me try.
      Im working on an app that distinguishes listview items that have been clicked and those not. I had tried to change text color after click but that changed color for ALL elements in the listview

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Месяц назад +1

      Multiple selection isn't possible in Listview. However, you can explore extensions (community.appinventor.mit.edu/t/multiple-selection-via-listview-possible/120584/4). Without an extension, the text color can't be changed for the selected item but you can change the selection color in designer view. So, your selected item will be highlighted with the selection color. But once you tap on another item, the previous item will be deselected and will lose the selection color.

    • @mfalme254
      @mfalme254 Месяц назад +1

      @@ObsidianSoftEducation This works! Thank You

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Месяц назад

      @@mfalme254 most welcome :)

  • @Lydia-kf2wj
    @Lydia-kf2wj Год назад +2

    Thank you for the tutorial!
    I'm trying to download your app for mental math, but it's showing that it's not available for my device as it was made for an older anroid versions. Can you please update it as your mental math content is really helping my kids

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад +1

      Most welcome 😊. Kindly tell me the Android version of your device so that I make sure that the mental maths app is correctly updated.

    • @Lydia-kf2wj
      @Lydia-kf2wj Год назад +1

      @ObsidianSoftEducation my anroid version is 13

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад

      @@Lydia-kf2wj working on it :)

    • @Lydia-kf2wj
      @Lydia-kf2wj Год назад +1

      @ObsidianSoftEducation Thank youu!!!

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад +1

      @@Lydia-kf2wj Should be available now: play.google.com/store/apps/details?id=com.obsidiansoft.android.mentalmaths Do tell me how it performs on Android 13

  • @dleej13
    @dleej13 3 месяца назад

    Hey, How would I delete an entry? I have it all showing in a list, my plan is to delete the items in the selected row from the google sheets with a button in ai2. I used to have a script with webscript but it no longer works and I hope you have an easy way. Thanks!

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  3 месяца назад +1

      you need a web script for this kind of editing in google sheet. check out this link community.appinventor.mit.edu/t/simple-crud-with-google-sheets-and-apps-script-fixes-hay-kel-flaws/65799 as this might help you. I will try to make a tutorial on it too.

    • @dleej13
      @dleej13 3 месяца назад

      @@ObsidianSoftEducation thank you for your reply. I will look into it, thank you!!!

  • @irfandaudpota7408
    @irfandaudpota7408 Год назад

    can not parse text argument to "list from csv table" as csv-formatted table

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад

      Make sure that you have provided responseContent as input and that you are connected to the internet. Otherwise use a notifier to see in an alert what is being sent back as the responseContent.

  • @mfalme254
    @mfalme254 Месяц назад

    Hello, am not sure why am getting the "Cannot parse text argument to "list from csv table" as a CSV-formatted table" error. Am grabbing data from two columns (Timestamp and another) of data from one gsheet and transferring same data to another. The weird part is that the transfer works as I want. Just getting the error message at the end

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Месяц назад

      Have you edited the link correctly and added export?format=csv at the end. Are you getting the error when you get the data from google sheet or when you write to another google sheet?

    • @mfalme254
      @mfalme254 Месяц назад

      The export?format=csv is in place for web component url. The error pops up after I write the data to the new gsheet.
      I've tried to setup the data output block similar to the input data block i.e initialized a local empty list then assigned the output data using 'select list item, list, index' 'get response'. Funny enough no error message but data not transferred to new gsheet😅

    • @mfalme254
      @mfalme254 Месяц назад

      Are you on app inventor community? I could send you my blocks and gsheet

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Месяц назад

      Aren't you writing to the Google sheet using my send data to Google sheet tutorial? I have used google forms there.

  • @LEARNANDEARN2003
    @LEARNANDEARN2003 Год назад +1

    If the button click more than one time the data will again load.. how to refresh the data again..?

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад

      Yes...it will refresh when button is clicked.

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад

      Do you want an auto refresh feature?...we can use a clock with timer to refresh data automatically so that when data is added in google sheet, it is shown to user too in app

    • @LEARNANDEARN2003
      @LEARNANDEARN2003 Год назад +1

      @@ObsidianSoftEducation please make html view in webview video tutorial

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад

      @@LEARNANDEARN2003 sure :)

  • @LEARNANDEARN2003
    @LEARNANDEARN2003 Год назад +1

    Make html view in mit app inventor

  • @yuhani123
    @yuhani123 14 дней назад

    sir, how if we want to get data from difference sheet number, ist still posible?

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  14 дней назад +1

      not possible with this way as this is the easy way so it only reads from sheet #1. If you want more control then you will have to use a web app and use scripts.

    • @yuhani123
      @yuhani123 14 дней назад

      @@ObsidianSoftEducation thank you sir, do you have link video tutorial about that (web app and use scirpts)

  • @huyenizzi
    @huyenizzi 7 месяцев назад +1

    Thank you so much.

  • @bonitoflakes8045
    @bonitoflakes8045 4 месяца назад

    it says "list index too large".. what do i dooo

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  3 месяца назад

      Please compare the code of your Web1.GotText even with the code shown in the video or you can have a look at the written tutorial: obsidiansofteducation.blogspot.com/p/get-or-read-data-from-google-sheet-in.html

  • @brcimo736
    @brcimo736 4 месяца назад

    is this doable with firebase ?

  • @MoezRekik
    @MoezRekik Год назад

    Hi and thank you very much for the tutorials.
    I created two applications one for the teacher and the other for the student. The two applications have the same database but each time I need specific columns.
    I encountered a problem (Runtime Error: Select list item: Attempt to get item number 19 of a list of length 18:...)
    I use Kodular.
    How to solve this problem ?
    Can I send you an email?
    Thanks

    • @ObsidianSoftEducation
      @ObsidianSoftEducation  Год назад +1

      Sure. Send email at obsidiansoftc@gmail.com. This is a classic index out of bounds error. Make sure that you are accessing the correct index. Add error checks and alerts to see exactly where the problem is happening.

    • @MoezRekik
      @MoezRekik Год назад

      God bless you@@ObsidianSoftEducation