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