Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Read&;在编辑时用C#编写打开的excel文件_C#_Excel_File_Unity3d - Fatal编程技术网

Read&;在编辑时用C#编写打开的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

早上好

我已经为一个问题挣扎了几个星期,当最糟糕的部分似乎已经解决时,现在我有一个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文件作为内存数据库来存储值并重新计算其他单元格,如下所示:

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