unity中将Text搭建的表格导出Excel表

unity中通过Text组件搭建的表格如下图所示

备注:每一行是一个prefab,每一个单元格是一个Text

具体代码如下

使用的Excel相关插件请查看  此博客  https://blog.csdn.net/U3DCoder/article/details/82867155

   //点击按钮导出报表
   reportui.transform.FindChild("energyReportInfo/energyReportitle-top/Button/DownloadBtn").GetComponent<UnityEngine.UI.Button>().onClick.AddListener(() =>
    {
            
            string dir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "/数据报表/数据表";
           
            MessageBox.Show("报表路径:" + dir);
            SaveExcel(dir, "数据报表.xlsx");
            WriteExcel(dir + "/数据报表.xlsx");

            
    });


 //创建Excel表
    public static void SaveExcel(string path, string fileName)
    {
        if (!System.IO.Directory.Exists(path))
        {
            System.IO.Directory.CreateDirectory(path);
        }
        if (System.IO.File.Exists(path + "\\" + fileName))
        {
            System.IO.File.Delete(path + "\\" + fileName);
        }
        System.IO.File.Create(path + "\\" + fileName).Close();
    }
    //导出能耗数据Excel表,将数据写入Excel中
    int energyRow = 2;
    int energyCloumn = 1;
    public void WriteExcel(string outputDir)
    {
        FileInfo newFile = new FileInfo(outputDir);
        if (newFile.Exists)
        {
            newFile.Delete();  // ensures we create a new workbook
            newFile = new FileInfo(outputDir);
        }

        using (ExcelPackage package = new ExcelPackage(newFile))
        {
            // add a new worksheet to the empty workbook
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
            //Add the headers
            worksheet.Cells[1, 1].Value = "项目名称";
            worksheet.Cells[1, 2].Value = "1线";
            worksheet.Cells[1, 3].Value = "2线";
            worksheet.Cells[1, 4].Value = "3线";
            worksheet.Cells[1, 5].Value = "4线";
            worksheet.Cells[1, 6].Value = "5线";
            worksheet.Cells[1, 7].Value = "6线";
            worksheet.Cells[1, 8].Value = "8台(k4)";
            worksheet.Cells[1, 9].Value = "8台(K1)";
            worksheet.Cells[1, 10].Value = "3台";
            worksheet.Cells[1, 11].Value = "12台K2";
            worksheet.Cells[1, 12].Value = "9台(K3)";
            worksheet.Cells[1, 13].Value = "总计";

            foreach (Transform kk in reportui.transform.FindChild("energyReportInfo/bg/energyList/Content"))
            {
                Transform temp = kk;
                foreach (Transform cc in temp.transform.FindChild("content"))
                {
                    worksheet.Cells[energyRow, energyCloumn].Value = cc.GetComponent<Text>().text;
                    //Debug.LogError(energyRow + "  数据 " + energyCloumn + "  " + cc.GetComponent<Text>().text);
                    if (energyCloumn < temp.transform.FindChild("content").childCount)
                    {
                        energyCloumn++;
                    }
                    else
                    {
                        energyCloumn = 1;
                    }

                }
                if (energyRow < reportui.transform.FindChild("energyReportInfo/bg/energyList/Content").childCount+1)
                {
                    energyRow++;
                }
                else 
                {
                    energyRow=2;
                }
              
            }

            //foreach (var kk in m_nameToGameObject.Values)
            //{
            //    // Debug.LogError("存储的值    " + kk);
            //}
            //Debug.LogError("数量 " + reportui.transform.FindChild("energyReportInfo/bg/energyList/Content").childCount);

            //for (i = 2; i <= reportui.transform.FindChild("energyReportInfo/bg/energyList/Content").childCount + 1; i++)
            //{
            //    for (j = 1; j <= 13; j++)
            //    {
            //        //Debug.LogError(i + "      " + j);
            //        //foreach (Transform kk in reportui.transform.FindChild("energyReportInfo/bg/energyList/Content"))
            //        //{
            //        //    Transform temp = kk;
            //        //    foreach (Transform cc in temp.transform.FindChild("content"))
            //        //    {
            //        //        Debug.LogError(i + "   " + j+  "  "+cc.GetComponent<Text>());
            //        //    }
            //        //}
            //        foreach (var kk in m_nameToGameObject)
            //        {

            //            //if (kk.Key == kk.Value.name)
            //            //{
            //            //    Debug.LogError("存储的值    " + kk.Value.GetComponent<Text>().text);
            //            //}
            //            //energyData = kk.Value.GetComponent<Text>().text;

            //            //Debug.LogError(i + "   " + j + "  " + energyData);
            //        }
            //        //worksheet.Cells[i, j].Value = ;

            //    }
            //}



            //Add some items...
            //worksheet.Cells["A2"].Value = 12001;
            //worksheet.Cells["B2"].Value = "Nails";
            //worksheet.Cells["C2"].Value = 37;
            //worksheet.Cells["D2"].Value = 3.99;

            //worksheet.Cells["A3"].Value = 12002;
            //worksheet.Cells["B3"].Value = "Hammer";
            //worksheet.Cells["C3"].Value = 5;
            //worksheet.Cells["D3"].Value = 12.10;

            //worksheet.Cells["A4"].Value = 12003;
            //worksheet.Cells["B4"].Value = "Saw";
            //worksheet.Cells["C4"].Value = 12;
            //worksheet.Cells["D4"].Value = 15.37;

            //save our new workbook and we are done!
            package.Save();
        }
    }

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值