狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【JavaScript】HTML5 純JS利用 FileReader 打開讀取和保存txt文本文件

admin
2023年11月28日 23:35 本文熱度 1754

JS作為網(wǎng)頁客戶端最常用的語言之一,其在處理本地文件方面有著非常重要的作用。本文將對(duì)JS打開本地文件進(jìn)行多方面的分析和闡述。

一、原生Javascript打開本地文件

在JS中,我們可以通過 input 元素的 type 屬性為 file 來創(chuàng)建上傳文件的表單組件。通過該組件,我們可以讓用戶選擇本地文件并將其上傳至服務(wù)器。示例代碼如下:

<input type="file" id="file">
// JS代碼
const input = document.getElementById('file');
input.addEventListener('change', (e) => {
  const file = e.target.files[0];
  console.log(file);
});

通過對(duì) input 組件的監(jiān)聽,我們可以獲取上傳的文件,從而進(jìn)一步處理文件內(nèi)容。例如,我們可以利用 FileReader 對(duì)象來讀取文件內(nèi)容并將其展示在頁面上。代碼如下:

const input = document.getElementById('file');
input.addEventListener('change', (e) => {
  const file = e.target.files[0];
  const reader = new FileReader();
  reader.readAsText(file);
  reader.addEventListener('load', (e) => {
    const result = e.target.result;
    console.log(result);
  });
});

通過上述代碼,我們可以通過 input 元素上傳本地文件并讀取其中的文本內(nèi)容。

二、使用第三方庫打開本地文件

在處理本地文件過程中,我們可以利用一些成熟的第三方庫來實(shí)現(xiàn)更為復(fù)雜的操作。例如,使用 FileSaver.js 庫可以將數(shù)據(jù)以某種格式保存在本地文件中。示例代碼如下:

import { saveAs } from 'file-saver';
const data = new Blob(['hello, world!'], { type: 'text/plain;charset=utf-8' });
saveAs(data, 'hello.txt');

通過上述代碼,庫會(huì)彈出一個(gè)保存文件的框,讓用戶輸入保存的文件名和文件格式,然后將數(shù)據(jù)保存到本地文件中。

三、使用Electron打開本地文件

在處理本地文件的桌面應(yīng)用程序中,我們可以使用 Electron 來實(shí)現(xiàn)打開和處理本地文件的功能。示例代碼如下:

const { dialog } = require('electron').remote;
dialog.showOpenDialog((fileNames) => {
  if (fileNames === undefined) {
    console.log("No file selected");
    return;
  }
  let fileName = fileNames[0];
  fs.readFile(fileName, 'utf-8', (err, data) => {
    if (err) {
      alert("An error ocurred reading the file :" + err.message);
      return;
    }
    console.log(data);
  });
});

通過上述代碼,我們可以彈出一個(gè)選擇文件的窗口,選擇本地文件,并且讀取其中的文本內(nèi)容。

四、在瀏覽器端預(yù)覽本地文件內(nèi)容

為了能夠在頁面中顯示本地文件的內(nèi)容,我們可以使用一些前端組件來實(shí)現(xiàn)。例如,使用 PDF.js 可以在頁面中渲染PDF文件;使用 SheetJS 可以解析Excel文件并將其轉(zhuǎn)換為JSON格式。示例代碼如下:

<!-- 在頁面中引入pdf.js庫 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js"></script>
<!-- 在頁面中引入SheetJS庫 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.full.min.js"></script>
<!-- 在頁面中引入PDF和Excel文件并渲染 -->
<div id="pdf-container"></div>
<div id="excel-container"></div>
<script>
  // 渲染PDF文件
  const pdfContainer = document.getElementById('pdf-container');
  const loadingTask = pdfjsLib.getDocument('/path/to/pdf');
  loadingTask.promise.then(function(pdf) {
    // pdf.js 渲染PDF文件到指定的容器中
    pdf.getPage(1).then(function(page) {
      const viewport = page.getViewport({ scale: 1.0 });
      const canvas = document.createElement('canvas');
      const context = canvas.getContext('2d');
      canvas.height = viewport.height;
      canvas.width = viewport.width;
      pdfContainer.appendChild(canvas);
      page.render({
        canvasContext: context,
        viewport: viewport
      });
    });
  });
  // 解析Excel文件并渲染表格
  const excelContainer = document.getElementById('excel-container');
  const workbook = XLSX.readFile('/path/to/excel');
  const sheet_name_list = workbook.SheetNames;
  const json = XLSX.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]]);
  const table = document.createElement('table');
  table.border = 1;
  excelContainer.appendChild(table);
  json.forEach((row) => {
    const tr = document.createElement('tr');
    table.appendChild(tr);
    Object.keys(row).forEach((key) => {
      const td = document.createElement('td');
      td.innerText = row[key];
      tr.appendChild(td);
    });
  });
</script>

上述代碼展示了如何使用 PDF.js 渲染頁面中的 PDF 文件,并使用 SheetJS 解析 Excel 文件,并將其呈現(xiàn)為 HTML 表格的形式。

五、使用Node.js打開本地文件

在服務(wù)器端,我們可以使用 Node.js 來處理本地文件。例如,使用 fs 模塊,我們可以輕松地讀取、寫入、重命名等本地文件。示例代碼如下:

const fs = require('fs');
// 讀取本地文件
fs.readFile('/path/to/file', 'utf-8', (err, data) => {
  if (err) throw err;
  console.log(data);
});
// 寫入本地文件
fs.writeFile('/path/to/file', 'Hello, world!', (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
// 重命名本地文件
fs.rename('/path/to/file', '/path/to/newfile', (err) => {
  if (err) throw err;
  console.log('The file has been renamed!');
});

通過上述代碼,我們可以輕松地操作本地文件,包括讀取、寫入和重命名等功能。

結(jié)語

本文對(duì)Javascript打開本地文件進(jìn)行詳細(xì)的闡述,從原生Javascript開始,逐步介紹了使用第三方庫、Electron、瀏覽器端預(yù)覽以及Node.js等多方面的內(nèi)容。通過本文的學(xué)習(xí),相信讀者對(duì)JS處理本地文件的方式有了更為清晰的認(rèn)識(shí)。



該文章在 2023/11/28 23:35:19 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved