txt文書をダウンロードします

3679 ワード

  //   txt  
    downloadTxtFile = async () => {
        const content = await axios({
            method: "GET",
            url: downloadTempUlr,
        });
        const aLabel = document.createElement("a");
        const labelEvent = document.createEvent("MouseEvents");
        labelEvent.initEvent("click", false, false);
        aLabel.href ="data:text/plain;charset=utf-8," + encodeURIComponent(content.data);
        aLabel.download = dowmloadName;
        aLabel.target = "_blank";
        aLabel.dispatchEvent(labelEvent);
    };
    
    
  const convertToCSV = objArray => {
    const array = typeof objArray !== "object" ? JSON.parse(objArray) : objArray;
    let str = "";

    // eslint-disable-next-line no-plusplus
    for (let i = 0; i < array.length; i++) {
        let line = "";
        for (const index in array[i]) {
            if (line !== "") line += ",";

            line += array[i][index];
        }

        str += `${line}\r
`; } return str; }; export const generateCSV = (data, fileName = "") => { return new Promise((resolve, reject) => { try { const csv = convertToCSV(data); const blob = new Blob([`\uFEFF${csv}`], { type: "text/csv; charset=utf-18" }); const now = new Date(); const FILE_NAME = `${fileName}${dayjs(now).format("YYYYMMDDHHmmss")}.csv`; if (window.navigator.msSaveOrOpenBlob) { // IE hack; see http://msdn.microsoft.com/en-us/library/ie/hh779016.aspx window.navigator.msSaveBlob(blob, FILE_NAME); resolve(); } else { const a = window.document.createElement("a"); a.href = window.URL.createObjectURL(blob, { type: "text/plain", encoding: "UTF-8" }); a.download = FILE_NAME; document.body.appendChild(a); a.click(); // IE: "Access is denied"; see: https://connect.microsoft.com/IE/feedback/details/797361/ie-10-treats-blob-url-as-cross-origin-and-denies-access document.body.removeChild(a); resolve(); } } catch (e) { reject(e); } }); }; export const blobToCSV = (blob, fileName = "") => { return new Promise((resolve, reject) => { try { // const blob = new Blob(b, { // type: "text/csv; charset=utf-18" // }); const FILE_NAME = `${fileName}`; if (window.navigator.msSaveOrOpenBlob) { // IE hack; see http://msdn.microsoft.com/en-us/library/ie/hh779016.aspx window.navigator.msSaveBlob(blob, FILE_NAME); resolve(); } else { const a = window.document.createElement("a"); a.href = window.URL.createObjectURL(blob, { type: "text/plain", encoding: "UTF-8" }); a.download = FILE_NAME; document.body.appendChild(a); a.click(); // IE: "Access is denied"; see: https://connect.microsoft.com/IE/feedback/details/797361/ie-10-treats-blob-url-as-cross-origin-and-denies-access document.body.removeChild(a); resolve(); } } catch (e) { reject(e); } }); };s