JSFiddle - React, Tailwind, and code Playground

HTML

<input id="csvFile" type="file">

JavaScript

// 文字列->Blob->File オブジェクトと加工
const csvStr = 'hoge,ふが,3列目';
const csvBlob = new Blob([csvStr], {type: 'text/plain'});
const csvFile = new File([csvBlob], 'ダミーファイル名.csv', {type: "text/plain"});
// File を DataTransfer に追加
// DataTransfer はドラッグ&ドロップ用のオブジェクト
// @see https://developer.mozilla.org/ja/docs/Web/API/DataTransfer
const dt = new DataTransfer();
// items.add で File を追加すると items に加えて files も増える
console.log(dt.items[0]);// undefined
console.log(dt.files[0]);// undefined
dt.items.add(csvFile);
console.log(dt.items[0]);// [object DataTransferItem]
console.log(dt.files[0]);// [object File]
// DataTransfer.files は
document.querySelector('input#csvFile').files = dt.files;