整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          html表格實現固定table的表頭和第一列內容

          頁中實現像表格文檔那樣固定table的表頭和第一列內容,類似于excel表格那樣!下面說說實現方法

          效果如下:

          在數據眾多的列表下,規定的區域內上下左右都可以滾動查看,然而表頭和側邊表頭都還在,方便用戶查看數據,增強用戶體驗!

          實現代碼

          html結構:

          css代碼:

          javascript代碼:

          用CSS可以大大提高HTML表格的外觀。

          CompanyContactCountry
          Alfreds FutterkisteMaria AndersGermany
          Berglunds snabbk?pChristina BerglundSweden
          Centro comercial MoctezumaFrancisco ChangMexico
          Ernst HandelRoland MendelAustria
          Island TradingHelen BennettUK
          K?niglich EssenPhilip CramerGermany
          Laughing Bacchus WinecellarsYoshi TannamuriCanada
          Magazzini Alimentari RiunitiGiovanni RovelliItaly
          North/SouthSimon CrowtherUK
          Paris spécialitésMarie BertrandFrance
          The Big CheeseLiz NixonUSA
          VaffeljernetPalle IbsenDenmark

          表格邊框

          指定CSS表格邊框,使用border屬性。

          下面的例子指定了一個表格的Th和TD元素的黑色邊框:

          實例

          table, th, td

          {

          border: 1px solid black;

          }

          請注意,在上面的例子中的表格有雙邊框。這是因為表和th/ td元素有獨立的邊界。

          為了顯示一個表的單個邊框,使用 border-collapse屬性。

          折疊邊框

          border-collapse 屬性設置表格的邊框是否被折疊成一個單一的邊框或隔開:

          實例

          table

          {

          border-collapse:collapse;

          }

          table,th, td

          {

          border: 1px solid black;

          }


          表格寬度和高度

          Width和height屬性定義表格的寬度和高度。

          下面的例子是設置100%的寬度,50像素的th元素的高度的表格:

          實例

          table

          {

          width:100%;

          }

          th

          {

          height:50px;

          }


          表格文字對齊

          表格中的文本對齊和垂直對齊屬性。

          text-align屬性設置水平對齊方式,像左,右,或中心:

          實例

          td

          {

          text-align:right;

          }

          垂直對齊屬性設置垂直對齊,比如頂部,底部或中間:

          實例

          td

          {

          height:50px;

          vertical-align:bottom;

          }


          表格填充

          如果在表的內容中控制空格之間的邊框,應使用td和th元素的填充屬性:

          實例

          td

          {

          padding:15px;

          }


          表格顏色

          下面的例子指定邊框的顏色,和th元素的文本和背景顏色:

          實例

          table, td, th

          {

          border:1px solid green;

          }

          th

          {

          background-color:green;

          color:white;

          }

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          開源精選》是我們分享Github、Gitee等開源社區中優質項目的欄目,包括技術、學習、實用與各種有趣的內容。本期推薦的SheetJS是適用于傳統和現代軟件的新電子表格。

          文件支持格式

          SheetJS 社區版提供了久經考驗的開源解決方案,用于從幾乎任何復雜的電子表格中提取有用的數據,并生成適用于傳統和現代軟件的新電子表格。

          SheetJS Pro提供超越數據處理的解決方案:輕松編輯復雜模板;用造型釋放你內心的畢加索;使用圖像/圖表/數據透視表制作自定義工作表;評估公式表達式和端口計算到 Web 應用程序;自動化常見的電子表格任務等。

          兼容性

          SheetJS入門

          安裝

          完整的瀏覽器獨立構建保存dist/xlsx.full.min.js并可以直接添加到帶有<script>標簽的頁面:

          <script lang="javascript" src="dist/xlsx.full.min.js"></script>

          每個獨立的發布腳本都可以在https://cdn.sheetjs.com/獲得。最新版本使用latest標簽:

          <!-- use the latest version -->
          <script lang="javascript" src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"></script>

          可以通過版本引用特定的發行版:

          <!-- use version 0.18.5 -->
          <script lang="javascript" src="https://cdn.sheetjs.com/xlsx-0.18.5/package/dist/xlsx.full.min.js"></script>

          對于生產用途,應下載腳本并將其與其他腳本一起添加到公用文件夾中。

          瀏覽器構建

          完整的單文件版本生成于dist/xlsx.full.min.js

          dist/xlsx.core.min.js省略代碼頁庫(不支持 XLS 編碼)

          在dist/xlsx.mini.min.js. 與完整版本相比:

          • 跳過代碼頁庫(不支持 XLS 編碼)
          • 不支持 XLSB / XLS / Lotus 1-2-3 / SpreadsheetML 2003 / Numbers
          • 節點流實用程序已刪除

          這些腳本也可在 CDN 上找到:

          <!-- use xlsx.mini.min.js from the latest version -->
          <script lang="javascript" src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.mini.min.js"></script>

          ECMAScript 模塊

          ECMAScript 模塊構建被保存到xlsx.mjs并可以直接添加到帶有script標簽的頁面,使用type="module":

          <script type="module">
          import { read, writeFileXLSX } from "https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs";
          
          /* load the codepage support library for extended support with older formats  */
          import { set_cptable } from "https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs";
          import * as cptable from 'https://cdn.sheetjs.com/xlsx-latest/package/dist/cpexcel.full.mjs';
          set_cptable(cptable);
          </script>

          NodeJS 包還公開了帶有module參數的模塊,Angular 和其他項目都支持該參數:

          import { read, writeFileXLSX } from "xlsx";
          
          /* load the codepage support library for extended support with older formats  */
          import { set_cptable } from "xlsx";
          import * as cptable from 'xlsx/dist/cpexcel.full.mjs';
          set_cptable(cptable);

          SheetJS用法

          大多數涉及電子表格和數據的場景可以分為 5 個部分:

          • 獲取數據:數據可以存儲在任何地方:本地或遠程文件、數據庫、HTML TABLE,甚至在 Web 瀏覽器中以編程方式生成。
          • 提取數據:對于電子表格文件,這涉及解析原始字節以讀取單元格數據。對于一般的 JS 數據,這涉及到重塑數據。
          • 處理數據:從生成匯總統計數據到清理數據記錄,這一步是問題的核心。
          • 數據包:這可能涉及制作新的電子表格或使用 XML 序列化JSON.stringify或編寫 XML 或簡單地為 UI 工具展平數據。
          • 發布數據:電子表格文件可以上傳到服務器或本地寫入。數據可以在 HTML TABLE 或數據網格中呈現給用戶。

          一個常見問題涉及從存儲在 HTML 表中的數據生成有效的電子表格導出。在此示例中,將抓取頁面上的 HTML TABLE,將在底部添加一行帶有報告日期的行,并在本地生成和下載新文件。XLSX.writeFile負責打包數據并嘗試本地下載:

          // Acquire Data (reference to the HTML table)
          var table_elt = document.getElementById("my-table-id");
          
          // Extract Data (create a workbook object from the table)
          var workbook = XLSX.utils.table_to_book(table_elt);
          
          // Process Data (add a new row)
          var ws = workbook.Sheets["Sheet1"];
          XLSX.utils.sheet_add_aoa(ws, [["Created "+new Date().toISOString()]], {origin:-1});
          
          // Package and Release Data (`writeFile` tries to write and save an XLSB file)
          XLSX.writeFile(workbook, "Report.xlsb");

          read該庫嘗試使用從電子表格文件 ( / ) 中提取有用數據并從數據 ( / )readFile生成新電子表格文件的功能來簡化步驟 2 和 4 。其他實用功能,例如 與其他常見數據源(如 HTML 表)一起使用。writewriteFiletable_to_book本文檔和各種演示項目涵蓋了步驟 1 和 5 的許多常見場景和方法。

          獲取和提取數據

          解析工作簿

          從電子表格字節中提取數據

          var workbook = XLSX.read(data, opts);

          該方法可以從存儲在 JS 字符串、“二進制字符串”、NodeJS 緩沖區或類型化數組(或)read中的電子表格字節中提取數據。Uint8ArrayArrayBuffer

          從本地文件讀取電子表格字節并提取數據

          var workbook = XLSX.readFile(filename, opts);

          該readFile方法嘗試在提供的路徑中讀取電子表格文件。瀏覽器一般不允許以這種方式讀取文件(這被認為存在安全風險),嘗試以這種方式讀取文件會拋出錯誤。

          例子

          NodeJS 服務器中的本地文件

          readFilefs.readFileSync在引擎蓋下使用:

          var XLSX = require("xlsx");
          
          var workbook = XLSX.readFile("test.xlsx");

          對于節點 ESM,readFile未啟用幫助程序。相反,fs.readFileSync 應該用于讀取文件數據,以Buffer供使用XLSX.read:

          import { readFileSync } from "fs";
          import { read } from "xlsx/xlsx.mjs";
          
          const buf = readFileSync("test.xlsx");
          /* buf is a Buffer */
          const workbook = read(buf);

          網頁中用戶提交的文件

          // XLSX is a global from the standalone script
          
          async function handleDropAsync(e) {
            e.stopPropagation(); e.preventDefault();
            const f = e.dataTransfer.files[0];
            /* f is a File */
            const data = await f.arrayBuffer();
            /* data is an ArrayBuffer */
            const workbook = XLSX.read(data);
          
            /* DO SOMETHING WITH workbook HERE */
          }
          drop_dom_element.addEventListener("drop", handleDropAsync, false);

          為了獲得最大的兼容性,FileReader應使用 API:

          function handleDrop(e) {
            e.stopPropagation(); e.preventDefault();
            var f = e.dataTransfer.files[0];
            /* f is a File */
            var reader = new FileReader();
            reader.onload = function(e) {
              var data = e.target.result;
              /* reader.readAsArrayBuffer(file) -> data will be an ArrayBuffer */
              var workbook = XLSX.read(data);
          
              /* DO SOMETHING WITH workbook HERE */
            };
            reader.readAsArrayBuffer(f);
          }
          drop_dom_element.addEventListener("drop", handleDrop, false);

          簡單下載示例

          /**
           * JSON轉換Excel
           */
          function jsonToSheet () {
              let json = [
                  {
                      "姓名": "EJ",
                      "性別": "男",
                  },
                  {
                      "姓名": "LSQ",
                      "性別": "女",
                  }
              ]
          
              // 實例化一個工作簿
              let book = XLSX.utils.book_new()
          
              // 實例化一個Sheet
              let sheet = XLSX.utils.json_to_sheet(json, {
                  header: ['姓名', '性別']
              })
          
              // 將Sheet寫入工作簿
              XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')
          
              // 寫入文件,直接觸發瀏覽器的下載
              XLSX.writeFile(book, 'jsonToSheet.xlsx')
          }
          
          /**
           * 數組轉換Excel
           */
          function arrayToSheet () {
              let data = [
                  ['姓名', '性別'],
                  ['EJ', '男'],
                  ['LSQ', '女']
              ]
          
              // 實例化一個工作簿
              let book = XLSX.utils.book_new()
          
              // 實例化一個Sheet
              let sheet = XLSX.utils.aoa_to_sheet(data)
          
              // 將Sheet寫入工作簿
              XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')
          
              // 寫入文件,直接觸發瀏覽器的下載
              XLSX.writeFile(book, 'arrayToSheet.xlsx')
          }

          —END—

          開源協議:Apache-2.0 License

          開源地址:https://github.com/SheetJS/sheetjs


          主站蜘蛛池模板: 精品国产一区二区三区2021| 国产一区二区成人| 自慰无码一区二区三区| 久久91精品国产一区二区| 精品人妻码一区二区三区| 国产精品女同一区二区久久| 国产精品久久久久一区二区三区 | 国产一区二区高清在线播放| 亚洲日韩国产欧美一区二区三区| 国产高清在线精品一区二区三区| 国产乱码精品一区二区三区麻豆 | 精品无码一区二区三区水蜜桃| 亚洲字幕AV一区二区三区四区| 乱色精品无码一区二区国产盗| 狠狠做深爱婷婷综合一区 | 亚洲高清偷拍一区二区三区| 波多野结衣一区在线| 国产伦精品一区二区三区在线观看 | 亚洲国产精品无码第一区二区三区| 无码精品人妻一区二区三区中| 无码国产精品一区二区免费16| 风间由美性色一区二区三区| 综合无码一区二区三区| 久夜色精品国产一区二区三区 | 波多野结衣一区二区| 日本一区二区三区在线看 | 一区二区三区观看免费中文视频在线播放| 国产自产V一区二区三区C| 亚洲AV成人精品一区二区三区 | 一区二区三区无码视频免费福利 | 亚洲一区二区三区香蕉| 三上悠亚一区二区观看| AV无码精品一区二区三区| 国产福利无码一区在线| 精品国产一区二区三区久久蜜臀| 国产一区二区三区久久| 无码一区18禁3D| 亚洲一区精品无码| 女人18毛片a级毛片一区二区| 日韩电影一区二区| 人妻精品无码一区二区三区|