AddItemToLocalLanguage.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using LitJson;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using UnityEditor;
  5. using UnityEngine;
  6. using Excel;
  7. using System.Data;
  8. public class AddItemToLocalLanguage
  9. {
  10. static string excelPath =Application.dataPath+ @"/Config/Lan/localLanguage.xlsx";
  11. [MenuItem("Tools/添加物品多语言表")]
  12. static void AddItemDesToLocalLanguage()
  13. {
  14. List<Good> goods = JsonMapper.ToObject<List<Good>>(Resources.Load<TextAsset>("goodsData").text);
  15. for (int i = 0; i < goods.Count; i++)
  16. {
  17. goods[i].assetsType = goods[i].dressType;
  18. goods[i].dressType = (goods[i].id / 10000).ToString();
  19. }
  20. // 打开 Excel 文件
  21. FileInfo fileInfo = new FileInfo(excelPath);
  22. //using (ExcelPackage package = new ExcelPackage(fileInfo))
  23. //{
  24. // // 获取工作表
  25. // ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; // 假设我们操作第一个工作表
  26. // Debug.Log(worksheet.Cells.Columns);
  27. // // 添加新行
  28. // //worksheet.Cells[worksheet.Dimension.Rows + 1, 1].Value = goods[0].name;
  29. // // 保存修改
  30. // //package.Save();
  31. //}
  32. using (FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
  33. {
  34. IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
  35. var result = excelReader.AsDataSet();
  36. DataRow dataRow = result.Tables[0].NewRow();
  37. dataRow[0] = goods[0].name;
  38. result.Tables[0].Rows.Add(dataRow);
  39. result.AcceptChanges();
  40. AssetDatabase.SaveAssets();
  41. AssetDatabase.Refresh();
  42. }
  43. }
  44. }