先說坑花了一下午才找到解決方法解決,
在Unity編輯模式下點擊物體創建對應的表,獲取物體名字與在InputText填寫的注釋數據。然后保存。創建Exect表可以打開,打包PC后,點擊物體創建的表,打不開文件破損
解決方法:到unity編輯器所在路徑中去找這個路徑
\Editor\Data\MonoBleedingEdge\lib\mono\unityaot 或者 unityjit 文件夾或者unityaot-win32
找到里邊以”I18N“開頭的這四個dll文件
?
在這里感謝大佬:LAIALAIA
解決方法思路原版鏈接:unity 使用EPPlus對Excel的創建、寫入、讀取操作 - 噠噠噠~~~ - 博客園 (cnblogs.com)
創建讀取刪除Execel
?// 初始化 Excel 文件
?
// 初始化 Excel 文件public void InitializeExcelFile(string ExcelFileName){// 獲取應用的數據文件夾路徑string dataPath = Application.streamingAssetsPath + "/Data";// 合并路徑,得到完整的 Excel 文件路徑excelFilePath = Path.Combine(dataPath, ExcelFileName + ".xls");// 創建一個文件信息對象來檢查 Excel 文件是否存在FileInfo excelFile = new FileInfo(excelFilePath);// 隱藏輸入框inputField.gameObject.SetActive(false);// 如果 Excel 文件不存在,創建一個新的 Excel 工作簿,并添加一個工作表if (!excelFile.Exists){// 創建一個新的 Excel 工作簿對象workbook = new XSSFWorkbook();// 在工作簿中創建一個名為 "Comments" 的工作表sheet = (XSSFSheet)workbook.CreateSheet(ExcelFileName);// 在工作表的第一行(行索引為0)上創建一個新的行對象,并在該行中創建一個新的單元格對象(列索引為0)// 然后將 "Object Name" 這個字符串設置為單元格的值sheet.CreateRow(0).CreateCell(0).SetCellValue("Object Name");// 獲取工作表的第一行(行索引為0),然后在該行中創建一個新的單元格對象(列索引為1)// 然后將 "Comment" 這個字符串設置為單元格的值sheet.GetRow(0).CreateCell(1).SetCellValue("Comment");}else{using (FileStream fs = new FileStream(excelFilePath, FileMode.Open, FileAccess.Read)){workbook = new XSSFWorkbook(fs);sheet = (XSSFSheet)workbook.GetSheetAt(0);}}}
刪除
? ?private void DeleteObjectFromExcel(){if (workbook == null || lastClickedObject == null){Debug.LogError("Excel workbook is not initialized or no object clicked.");return;}string objectName = lastClickedObject.name;int rowIndex = FindRowIndexByObjectName(objectName);if (rowIndex >= 0){// 刪除選定的行sheet.RemoveRow(sheet.GetRow(rowIndex));// 清空 InputField 的文本內容inputField.text = "";for (int i = rowIndex + 1; i <= sheet.LastRowNum; i++){IRow currentRow = sheet.GetRow(i);// 跳過已刪除的行if (currentRow == null){continue;}IRow newRow = sheet.CreateRow(i - 1); // 創建一個新行for (int j = 0; j < currentRow.LastCellNum; j++){ICell currentCell = currentRow.GetCell(j);ICell newCell = newRow.CreateCell(j); // 創建一個新單元格if (currentCell != null){newCell.SetCellValue(currentCell.ToString());}}}// 清除最后一行sheet.RemoveRow(sheet.GetRow(sheet.LastRowNum));// 保存修改后的文件using (FileStream fs = new FileStream(excelFilePath, FileMode.Create, FileAccess.Write)){workbook.Write(fs);}}}