整合營銷服務商

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

          免費咨詢熱線:

          不再蒙圈:細說條件格式中的引用方式

          伙伴們好啊,今天老祝和大家說說條件格式有關的問題。

          在條件格式中,可設置的格式包括數字格式、字體、邊框和填充顏色等。Excel內置的條件格式規則包括“突出顯示單元格規則”、“最前/最后規則”、“數據條”、“色階”和“圖標集”,能夠滿足大多數用戶的應用需求。

          除了這些內置的功能,還可以在條件格式中使用函數公式,來完成更加個性化的設置。敲黑板,劃重點:

          如果公式返回的結果為TRUE或是不等于0的任意數值,則應用預先設置的格式效果。如果公式返回的結果為FALSE或是數值0,則不會應用預先設置的格式效果。

          在使用在條件格式中使用函數公式時,有一個讓很多小伙伴暈頭轉向的問題——引用方式。這個問題解決不了的話,一切努力就白瞎了。

          下面咱們以幾個常用的條件格式設置,來說說這個問題:

          應用一:突出顯示低于60的成績

          本例應用重點:

          如果選中的是一個單元格區域,可以以活動單元格作為參照編寫公式,設置完成后,該規則會應用到所選中范圍的全部單元格。

          本例中每個單元格單獨與數值60進行對比,所以使用相對引用方式。

          應用二:突出顯示未結算的記錄

          本例應用重點:

          如果選中的是多行多列的區域,需要同時考慮列行方向和列方向的引用方式。

          本例中,每一列都根據C列的內容進行判斷,因此C2使用列絕對引用方式,而每一行都根據同一行中C列的內容判斷,所以行方向使用相對引用。

          應用三:自動標記收益率最高的債券

          本例應用重點:

          如果需要在公式中固定引用某一行或某一列時,可以理解為在所選區域的活動單元格中輸入公式,然后將公式復制到所選范圍內。

          本例中,先使用絕對引用方式,用MAX函數計算出$D:$D的最大值,然后用$D2與之進行比較。因為每一列都用D列中的數據來比較,因此列方向使用絕對引用方式。而每一行中都根據同一行中D列的內容判斷,所以行方向使用相對引用。

          應用四:按指定間隔填充顏色

          本例應用重點:

          如果選中的是一列多行的單元格區域,需要注意活動單元格中的公式在向下復制時引用范圍的變化,也就是行方向的引用方式。本例中,使用MOD函數計算行號與E1單元格相除的余數,每一行、每一列都引用E1單元格中指定的數值,所以要使用絕對引用。

          同樣,如果選中的是一行多列的單元格區域,需要注意活動單元格中的公式在向右復制時引用范圍的變化,也就是列方向的引用方式。

          好了,今天咱們的內容就是這些吧,祝小伙伴們一天好心情!

          圖文制作:祝洪忠

          專業的職場技能充電站

          例簡介

          有些網站為了凸顯某部分字體,而引入自定義字體,但由于自定義字體相對都比較大(幾M),導致頁面加載緩慢;所以本文介紹三種壓縮字體的方法,可根據項目情況自行選擇。


          壓縮方法

          1、利用Fontmin程序(效果如下圖)

          1)運行Fontmin程序后,1位置輸入需要生成的文字內容,2位置拖入ttf文件(源文件7947KB);

          2)點擊“生成”按鈕,生成成功后,彈出生成文件(ttf文件變成11KB),根據瀏覽器兼容性引入文件。

          Tips:當需要增加新的文字時,需要重新生成文件。

          2、利用Node.js+Fontmin組件(效果如下圖)


          1)配置好Node.js框架(本文使用Express);

          2)在index.js文件增加代碼,用來自動讀取“views”下面的所有*.ejs文件的文字,然后根據“src”的ttf源文件,使用Fontmin組件生成壓縮文件(生成目錄“dest”)。

          Tips:適用于多文件情況下,自動匯總生成。

          // 遍歷所有文件提取里面的所有文字
          const fs = require("fs");
          const Fontmin = require('fontmin');
          let set = new Set();
          
          
          //get all possible characters
          const scanFolder = (dir, done) => {
              let results = [];
              fs.readdir(dir, (err, list) => {
                  if (err) {
                      return done(err);
                  }
                  let i = 0;
                  (function iter() {
                      let file = list[i++];
                      if (!file) {
                          return done(null, results);
                      }
                      file = dir + '/' + file;
                      console.log(file)
                      fs.stat(file, (err, stat) => {
                          if (stat && stat.isDirectory()) {
                              scanFolder(file, (err, res) => {
                                  results = results.concat(res);
                                  iter();
                              });
                          } else {
                              results.push(file);
                              iter();
                          }
                      });
                  })();
              });
          };
          //get all possible characters
          const generateFinalHTML = finalString => {
              const fontmin = new Fontmin()
                  .src('public/fonts/SourceHanSansCN-Medium.ttf')
                  .dest('public/fonts/build/')
                  .use(Fontmin.glyph({
                      text: finalString,
                      hinting: false
                  }))
                  .use(Fontmin.ttf2woff({
                      deflate: true
                  }));
          
          
          
          
              fontmin.run((err) => {
                  if (err) {
                      throw err;
                  }
              });
          }
          //get all possible characters
          scanFolder("views", (n, results) => {
              results.forEach(file => {
                  const result = fs.readFileSync(file, 'utf8');
                  const currentSet = new Set(result)
                  set = new Set([...set, ...currentSet]);
              });
              generateFinalHTML(Array.from(set).join(""))
          })

          3、利用font-spider組件(效果如下圖)

          1)安裝font-spider組件;

          npm install font-spider -g

          2)新建index.html文件;

          3)執行下面命令生成壓縮文件。

          font-spider ./*.html


          總結

          可以根據項目實際情況,選擇適當的方法。

          考:https://www.jb51.net/article/163170.htm

          vue中靜態資源的引入機制

          靜態資源可以通過兩種方式進行處理:

          在 JavaScript 被導入或在 template/CSS 中通過相對路徑(以 . 開頭)被引用。這類引用會被 webpack 處理。

          如 <img src="..."> 、 background: url(...) 和 CSS @import 的資源

          例如, url(./image.png) 會被翻譯為 require('./image.png')

          放置在 public 目錄下或通過絕對路徑被引用。這類資源將會直接被拷貝,而不會經過 webpack 的處理,你需要通過絕對路徑來引用它們。如果 URL 是一個絕對路徑,例如 /images/foo.png ,它將會被保留不變。

          假設有這樣一個目錄:

          vue-path/
          ----- public/
          -------- images/
          ------------ XX.jpg
          ----- src/
          -------- assets/
          ------------ images/
          ---------------- XX.jpg
          -------- App.vue
          

          App.vue

          一、常見的引入方式,路徑是固定的字符串,圖片會被webpack處理,文件若丟失會直接在編譯時報錯,生成的文件包含了哈希值:

          <img src="./assets/images/01.jpg" alt=""> 
          

          編譯后:


          主站蜘蛛池模板: 日韩一区在线视频| 本免费AV无码专区一区| 亚洲一区二区三区久久久久| 中文无码精品一区二区三区 | 久久久老熟女一区二区三区| 三上悠亚精品一区二区久久| 日韩AV无码一区二区三区不卡毛片| 日韩精品电影一区亚洲| 欧洲精品码一区二区三区免费看| 日韩精品一区二三区中文| 日韩免费一区二区三区| 无码人妻AⅤ一区二区三区水密桃| 日本一区二区三区久久| 精品乱人伦一区二区| 国产午夜精品一区二区| 水蜜桃av无码一区二区| 亚洲AV成人一区二区三区观看| 国产小仙女视频一区二区三区 | 亚洲av区一区二区三| 国产在线观看一区二区三区精品 | 91一区二区三区| 国产剧情国产精品一区| 中文字幕日韩一区| 高清一区高清二区视频| 亚洲日本va午夜中文字幕一区| 久久精品午夜一区二区福利| 国产一区二区三区不卡在线观看| 国产婷婷一区二区三区| 亚洲一区二区三区高清不卡| 国产亚洲综合一区二区三区| 一区二区在线电影| 亚洲免费一区二区| 中文字幕av日韩精品一区二区| 日本在线视频一区| 人妻av综合天堂一区| 久久久99精品一区二区| 国语对白一区二区三区| 日韩人妻无码一区二区三区99 | 亚洲一区无码精品色| 精品无码国产一区二区三区51安 | 性色AV 一区二区三区|