我在excel电子表格中有一个大的数据列表,我需要在我的Unity项目中传输一些数组。我一直在寻找一些方法,并可能会尝试其中的一些方法,但我有另一个问题。是否可以在没有额外插件或工具的情况下,将Excel数据转移到Unity数组中?就用基础的Unity?
正如@julienkay所说,如果excel文件是一个.csv可以作为纯文本文件处理。但是 如果不是呢?
如果你使用的是.xlsx,我建议你使用的是 Microsoft.Office.Interop.Excel;
它很容易使用,但要让它在Unity中工作不是那么容易,这就是为什么这个 联系 可以帮助你!
这是一个关于如何使用Interop.Excel方法的简单例子,这段代码将在这个excel中创建一个充满书名和链接的字典。
private void Exel()
{
Dictionary<string, string> linkTitleDict = new Dictionary<string, string>();
Application app = new Application();
Workbook excelWorkbook = app.Workbooks.Open(@"C:\Users\...\SpringerEbooks.xlsx");
Sheets excelSheets = excelWorkbook.Worksheets;
string currentSheet = "Table 1";
Worksheet excelWorksheet = (Worksheet)excelSheets.get_Item(currentSheet);
//
for (int i = initialRow; i < finalRow + 1; i++)
{
string bookTitle = (string)(excelWorksheet.Cells[i, 2] as Range).Value;
string bookLink = (string)(excelWorksheet.Cells[i, 5] as Range).Value;
linkTitleDict.Add(bookLink, bookTitle);
}
}
如果你愿意把你的excel文件保存为.csv格式来加载到Unity中,这很容易实现,不需要额外的插件,因为.csv本质上只是一个文本文件。关于如何解析一个.csv文件,可以在这里找到一个例子。https:/bravenewmethod.com20140913lightweight-csv-reader-for-unity。
如果你想读取本地的excel文件(.xlsx),那就比较困难了。