国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 使用NPOI,模板替換Excel中的關(guān)鍵字(針對.xlsx)

這篇具有很好參考價值的文章主要介紹了Unity 使用NPOI,模板替換Excel中的關(guān)鍵字(針對.xlsx)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Unity 使用NPOI,模板替換Excel中的關(guān)鍵字(針對.xlsx)

需求:項目中要用到生成Excel來打印文件,只需要替換其中的值,保留原模板,生成新的Excel

第一步:在unity中導(dǎo)入一下的dll
Unity 使用NPOI,模板替換Excel中的關(guān)鍵字(針對.xlsx)
新建一個Plugin的文件夾,把dll全部放進去
以上選中的這些文件在unity的安裝目錄下Unity\Editor\Data\Mono\lib\mono\unity可以找到
還有一個System.Data.dll,我放進去它會顯示重復(fù)引用,所以我就沒放上去,你要是想試試也可以在安裝路徑下找到,然后放進去
其他的鏈接在這里下載:Dll下載地址

第二步:新建一個Excel,取名為量表.xlsx(這個自己定,后面的代碼記得改,但是后綴一定時.xlsx)
放在StreamingAssets下面,作為Excel的模板路徑

例如,現(xiàn)在的這個數(shù)值是和后面代碼相掛鉤的
Unity 使用NPOI,模板替換Excel中的關(guān)鍵字(針對.xlsx)
第三步:新建腳本,隨便掛載在物體上

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class Writing : MonoBehaviour
{
    /// <summary>
    /// 模板文件路徑
    /// </summary>
    private string filePath = Application.streamingAssetsPath;

    ///目標(biāo)路徑,修改后的文件路徑
    private string targetPath = Application.streamingAssetsPath + "/Print/";

    /// <summary>
    /// 文件名稱
    /// </summary>
    private string fileName = "量表.xlsx";
    private string path = "";

    Dictionary<string, string> userInfo = new Dictionary<string, string>();


    void Start()
    {
        SetFile();
        //key為要替換的關(guān)鍵詞,value為將要替換的值
        userInfo.Add("ABC", "是我");
        userInfo.Add("ABC1", "是我1");
        userInfo.Add("ABC2", "是我2");
        userInfo.Add("ABC3", "是我3");


        WriteExcelTest();
    }

    public void SetFile()
    {
        //獲取指定路徑下面的所有資源文件  ,每次都刪除這個路徑下的文件
        if (Directory.Exists(Application.streamingAssetsPath + "/Print/"))
        {
            DirectoryInfo direction = new DirectoryInfo(Application.streamingAssetsPath + "/Print/");
            FileInfo[] files = direction.GetFiles("*", SearchOption.AllDirectories);
            for (int i = 0; i < files.Length; ++i)
            {
                if (files[i].Name.Contains(".xlsx"))
                {
                    File.Delete(Application.streamingAssetsPath + "/Print/" + files[i].Name);//刪除這個目錄下所有的word文檔
                }
            }
        }
        else
        {
            Directory.CreateDirectory(Application.streamingAssetsPath + "/Print/");
            print("創(chuàng)建成功");
        }
    }



    public void WriteExcelTest()
    {
        //合并兩個路徑字符串,整合模板文件的路徑
        path = Path.Combine(filePath, fileName);
        //打開模板文件
        FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
        //新建一個Excel
        IWorkbook workbook = new XSSFWorkbook(fs);
        //根據(jù)索引獲取第一個表
        ISheet sheet = workbook.GetSheetAt(0);

        for (int i = sheet.FirstRowNum; i <= sheet.LastRowNum; i++)
        {
            IRow row = sheet.GetRow(i);
            for (int j = row.FirstCellNum; j < row.LastCellNum; j++)
            {
                ICell cell = row.GetCell(j);
                //得到原來的值
                string cellContent = cell.StringCellValue;

                //替換和字典對應(yīng)的值
                foreach (KeyValuePair<string, string> item in userInfo)
                {
                    print(cellContent + " --------------");
                    if (item.Key == cellContent)
                    {
                        cell.SetCellValue(item.Value);
                    }
                }

            }
        }

        targetPath = targetPath + fileName;
        FileStream output = new FileStream(targetPath, FileMode.Create);//生成指定文件,這里把路徑改為目標(biāo)路徑
        workbook.Write(output);//寫入文件

        //一些列關(guān)閉釋放操作
        fs.Close();
        fs.Dispose();
        output.Close();
        output.Dispose();

        Debug.Log("修改文件成功");
        System.Diagnostics.Process.Start(targetPath);//打開文檔
    }
}


運行結(jié)果為
Unity 使用NPOI,模板替換Excel中的關(guān)鍵字(針對.xlsx)
新生成的文件路徑為
Unity 使用NPOI,模板替換Excel中的關(guān)鍵字(針對.xlsx)

大功告成,后續(xù)再增加其他的Excel內(nèi)容

補充:當(dāng)遍歷整個excel的時候,如果有為1,2,3這樣數(shù)值填充的單元格,會報錯誤InvalidOperationException: Cannot get a text value from a numeric cell NPOI.XSSF.UserModel.XSSFCell.get_RichStringCellValue ()

解決辦法:在遍歷的時候新添加幾行代碼
if (row.GetCell(j) != null)
{
row.GetCell(j).SetCellType(CellType.String);
}文章來源地址http://www.zghlxwxcb.cn/news/detail-423694.html

到了這里,關(guān)于Unity 使用NPOI,模板替換Excel中的關(guān)鍵字(針對.xlsx)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C#讀寫導(dǎo)入導(dǎo)出Excel表格模板(NPOI)

    C#讀寫導(dǎo)入導(dǎo)出Excel表格模板(NPOI)

    NPOI是指構(gòu)建在POI 3.x版本之上的一個程序,NPOI可以在沒有安裝Office的情況下對Word或Excel文檔進行讀寫操作。 NPOI是一個開源的C#讀寫Excel、WORD等微軟OLE2組件文檔的項目。 1、您可以完全免費使用該框架 2、包含了大部分EXCEL的特性(單元格樣式、數(shù)據(jù)格式、公式等等) 3、專業(yè)的技

    2023年04月08日
    瀏覽(27)
  • 使用less命令搜索文件中的關(guān)鍵字

    使用less命令搜索文件中的關(guān)鍵字

    less 與 more 類似,less 可以隨意瀏覽文件,支持翻頁和搜索,支持向上翻頁和向下翻頁。 語法 less [參數(shù)] 文件 參數(shù)說明: -b 緩沖區(qū)大小 設(shè)置緩沖區(qū)的大小 -e 當(dāng)文件顯示結(jié)束后,自動離開 -f 強迫打開特殊文件,例如外圍設(shè)備代號、目錄和二進制文件 -g 只標(biāo)志最后搜索的關(guān)鍵

    2024年02月12日
    瀏覽(95)
  • 文件按關(guān)鍵字分組-切割-染色-寫入excel

    文件按關(guān)鍵字分組-切割-染色-寫入excel

    ??????? 針對下面的文件data.csv,首先根據(jù)fid進行排序,然后分組,使相同fid的記錄放到同一個excel文件中,并對每列重復(fù)的數(shù)據(jù)元素染上紅色。 輸出 1. 找到同列重復(fù)元素 2. 插入圖片 3. 同列相同元素染色 輸出

    2024年02月15日
    瀏覽(16)
  • ES6中的Class關(guān)鍵字和super()方法,使用詳細(xì)(class類和super()方法)

    簡介:在ES6中,我們可以使用class來定義類,并通過 extends 實現(xiàn)類的繼承,然后在子類中,我們可以使用 super() 來調(diào)用父類的構(gòu)造函數(shù);今天來分享下class的使用詳細(xì)。 1、 首先,使用class,定義一個父類; 2、 然后再定義一個子類, 通過ex

    2024年02月12日
    瀏覽(23)
  • 8.29 auto關(guān)鍵字 lambda 類型轉(zhuǎn)換 標(biāo)準(zhǔn)模板庫 文件操作
  • Python UI自動化 —— 關(guān)鍵字+excel表格數(shù)據(jù)驅(qū)動

    Python UI自動化 —— 關(guān)鍵字+excel表格數(shù)據(jù)驅(qū)動

    1. 對selenium進行二次封裝,創(chuàng)建的庫 2. 準(zhǔn)備一個表格文件來寫入所有測試用例步驟 3. 對表格內(nèi)容進行讀取,使用映射關(guān)系來對用例進行調(diào)用執(zhí)行 ? ? 4. 執(zhí)行用例 1. 對selenium進行二次封裝,創(chuàng)建的庫 2. 創(chuàng)建一個表格,寫入測試步驟 將表格放入項目任意路徑下,記

    2024年02月09日
    瀏覽(21)
  • 使用NPOI修改Excel數(shù)據(jù)

    需求:格式為exp的文件,具有json結(jié)構(gòu),替換掉其中某些數(shù)據(jù) 解決方法:讀取excel,用npoi讀取指定內(nèi)容,在exp中找到特定結(jié)構(gòu),然后替換 讀取其他格式的文件也是用此方法

    2024年02月08日
    瀏覽(16)
  • 使用NPOI做Excel簡單報表

    使用NPOI做Excel簡單報表

    前言 前面介紹了NPOI單元格樣式的使用、單元格合并,以及NPOI提供的顏色?,F(xiàn)在用上前面的一些知識點,做一個測試結(jié)果表格。 1、 介紹NPOI 的顏色卡、名稱以及索引 https://editor.csdn.net/md/?articleId=130265415 2、 NPOI的CellStyle單元格樣式 https://editor.csdn.net/md/?articleId=130245869 3、 將

    2023年04月22日
    瀏覽(15)
  • C# 使用NPOI操作EXCEL

    C# 使用NPOI操作EXCEL

    1.添加NOPI ? ? ? ? 引用-管理NuGet程序包-添加NOPI 2.相關(guān)程序集 3.添加命名空間 4.從Excel導(dǎo)入的dgv樣例 5.從dgv導(dǎo)入到Excel

    2024年02月11日
    瀏覽(16)
  • 深入解析C#中的第三方庫NPOI:Excel和Word文件處理的利器

    一、引言 在.NET開發(fā)中,操作Office文檔(特別是Excel和Word)是一項常見的需求。然而,在服務(wù)器端或無Microsoft Office環(huán)境的場景下,直接使用Office Interop可能會面臨挑戰(zhàn)。為了解決這個問題,開源庫NPOI應(yīng)運而生,它提供了無需安裝Office即可創(chuàng)建、讀取和修改Excel (.xls, .xlsx) 和

    2024年03月18日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包