Read&;在编辑时用C#编写打开的excel文件
早上好 我已经为一个问题挣扎了几个星期,当最糟糕的部分似乎已经解决时,现在我有一个Excel文件的问题 我想做的是用一个程序(Datahub)读写一个Excel文件(Test.xls),同时用Unity3d用C#脚本读写同一个Excel文件。我正在使用C#中的Bytescout电子表格从Excel中读/写。我有: -具有来自Datahub的引用的单元格,这些值正在不断更新。Unity3d需要使用C读取这些值# -具有Unity3d使用C#写入的值的单元格,数据集线器不断读取这些值 Datahub需要打开excel文件才能读/写,但另一方面,Unity3d通过C#需要关闭该文件 我曾尝试在excel文件中使用宏自动保存它,并在C#中打开文件,每次读/写时关闭它,但它不起作用。我还尝试将其自动保存为副本,并在C#中打开该副本,但也不起作用 你知道如何面对这个问题吗?非常感谢!:) 如果使用API,则可以使用Excel文件作为内存数据库来存储值并重新计算其他单元格,如下所示:Read&;在编辑时用C#编写打开的excel文件,c#,excel,file,unity3d,C#,Excel,File,Unity3d,早上好 我已经为一个问题挣扎了几个星期,当最糟糕的部分似乎已经解决时,现在我有一个Excel文件的问题 我想做的是用一个程序(Datahub)读写一个Excel文件(Test.xls),同时用Unity3d用C#脚本读写同一个Excel文件。我正在使用C#中的Bytescout电子表格从Excel中读/写。我有: -具有来自Datahub的引用的单元格,这些值正在不断更新。Unity3d需要使用C读取这些值# -具有Unity3d使用C#写入的值的单元格,数据集线器不断读取这些值 Datahub
private void ReCalculate()
{
Worksheet worksheet;
worksheet = _spreadsheet.Workbook.Worksheets[0];
worksheet.Cell("A2").Value = System.Convert.ToInt32(TextBox1.Text);
worksheet.Cell("B2").Value = System.Convert.ToInt32(TextBox2.Text);
worksheet.Cell("C2").Formula = TextBox3.Text;
worksheet.Cell("C2").Calculate();
TextBox4.Text = worksheet.Cell("C2").Value.ToString();
}
如果您已经在单元格中有了包含一些数据和公式的电子表格,那么这种方法很有用
但是,如果您希望有一种存储和检索数据的好方法,那么您应该更好地使用数据库,因为它提供了一种可扩展和可靠的方法来存储大量数据(数百万行),运行查询,实际上您可能需要2个或更多的同时连接!数据库能够提供更高的速度,因为它们的内部设计(索引等),而电子表格能够更好地优化以存储数据
XLS、XSLX、CSV和其他文件更适合于向数据库导出数据和从数据库导入数据
披露:我隶属于ByteScout您可以在两个程序中使用FileShare.ReadWrite打开文件,但这不能保证它们都可以写入文件而不会导致损坏。Excel文件不是数据库为什么不使用数据库而不是用Excel文档模拟数据库?你说得对@PanagiotisKanavos和Adam Wilson,我们正在调查数据库连接,但同时我们希望进一步探索Excel选项。我尝试了FileShare.ReadWrite,尽管Unity可以从Datahub读取数据,但另一种方法似乎不起作用。是的,我们将尝试使用数据库。谢谢!!非常感谢你的想法!我完全同意你的看法,现在我们正在实施Microsoft SQL Server 2014,目前我们已经实现了Datahub和数据库之间的连接。现在我正在处理Unity3D和数据库之间的连接!最终会完成的:D