iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
Modern Web

30天學習Tauri系列 第 24

24.實作Tauri Todo - 匯入csv

  • 分享至 

  • xImage
  •  

首先,先修復date問題,回到todo\src\pages\index.tsx

將handleTodoAdd

  const handleTodoAdd = async () => {
    await invoke("new_todo", { title: todo.title, date: Date.now.toString() });
    setTodo({...todo, title: ""});
  }

修改成

  const handleTodoAdd = async () => {
    let date = Date.now().toString();
    await invoke("new_todo", { title: todo.title, date: date });
    setTodo({...todo, title: ""});
  }

今天我們來實現匯入csv

首先,建立handleImportFile
https://ithelp.ithome.com.tw/upload/images/20221009/20108931td1D8576Zw.png

  // Import
  const handleImportFile = async () => {
    const csv = await readTextFile('todos.csv', { dir: BaseDirectory.Download });
    var lines=csv.split("\n");

    let result = [];
  
    var headers=lines[0].split(",");
  
    for(var i=1;i<lines.length;i++){
  
        var obj = {};
        var currentline=lines[i].split(",");
  
        for(var j=0;j<headers.length;j++){
            obj[headers[j]] = currentline[j];
        }
  
        result.push(obj);
    }

    result.forEach(async (element: Todo)  =>  {
      await invoke("new_todo", { title: element.title, date: element.date });
    });

    await message('Import all todos!!', 'Import done!!');
  }

將button加入UI


        <div>
          <button type="button" onClick={() => handleImportFile()}>
            Import
          </button>
        </div>

https://ithelp.ithome.com.tw/upload/images/20221009/20108931ehyGEtVEEQ.png

測試,首先先刪除先前的Todo並創建新Todo
https://ithelp.ithome.com.tw/upload/images/20221009/20108931yGtq0ow0PH.png
匯出csv
https://ithelp.ithome.com.tw/upload/images/20221009/20108931KnlBTkM735.png
刪除所有的Todo,並點選匯入
https://ithelp.ithome.com.tw/upload/images/20221009/20108931umqlIqKMXT.png
https://ithelp.ithome.com.tw/upload/images/20221009/20108931TEl60v21ZG.png

此時,我們已將檔案匯入,我們看一下Database已經將檔案給匯入
https://ithelp.ithome.com.tw/upload/images/20221009/20108931Ssv24XNg6R.png
https://ithelp.ithome.com.tw/upload/images/20221009/201089314pCIqNzDzt.png


我們今天簡單的實現匯入檔案,接下來幾天是對我們的app來進行重構並優化,我們明天見。


上一篇
23.實作Tauri Todo - 匯出csv
下一篇
25.實作Tauri Todo - 加入快捷鍵
系列文
30天學習Tauri30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言