C# 将创建excel并从另一个excel读取值的应用程序

C# 将创建excel并从另一个excel读取值的应用程序,c#,asp.net,visual-studio,excel,C#,Asp.net,Visual Studio,Excel,我需要帮助来创建一个 将创建一个excel文件,只需按下一个按钮,它还将填充一些单元格 然后另一个按钮将打开一个openfile对话框,选择另一个excel文件,程序必须从中读取一些值,计算 将结果返回到程序中或/或导出到新的excel中 欢迎任何想法,如果有人知道,请告诉我至少从哪里开始。 对于这样的项目,C和VisualStudio2010是一个不错的选择,还是应该使用另一种语言? 如果我决定继续使用c,我在哪里可以找到一个命令列表,从我的程序中操作excel 提前感谢您的时间 几年前我学会

我需要帮助来创建一个

将创建一个excel文件,只需按下一个按钮,它还将填充一些单元格 然后另一个按钮将打开一个openfile对话框,选择另一个excel文件,程序必须从中读取一些值,计算 将结果返回到程序中或/或导出到新的excel中 欢迎任何想法,如果有人知道,请告诉我至少从哪里开始。 对于这样的项目,C和VisualStudio2010是一个不错的选择,还是应该使用另一种语言? 如果我决定继续使用c,我在哪里可以找到一个命令列表,从我的程序中操作excel


提前感谢您的时间

几年前我学会了一个聪明的技巧。。。我猜它今天仍然有效

使用ole连接,您可以简单地连接到excel文件,就像它是一个数据库一样,您也可以使用csv文件进行连接

首先要做的是连接到两个excel文件:

using(OleDbCommand com = new OleDbCommand ("select * from sheetName", new OleDbConnection(excelFilePath)))
{
   com.Connection.Open();
   IDataReader reader = com.ExecuteReader();
   // do stuff with the sheet data
   com.Connection.Close();
}
如果将其包装在方法或其他文件中,则可以使用“从工作表1中选择”和另一个方法,并在其他文件中插入或更新工作表2

不记得我在哪里找到这个。。。简洁但正确:

。。。所以底线是


将excel文件视为数据库:

为什么不使用csv文件格式?它是逗号或;可通过excel单独打开,并具有excel文件功能。很简单。看看这个线程@Saeed csv对我来说不起作用,很不幸,因为这个程序应该是由没有经验的用户使用的,另外,因为一旦创建了第一个excel,用户还必须填写一些单元格@Muhammad,谢谢你的推荐,但线程并没有以某种固溶体结束,我尝试了大多数建议的库,但大多数库甚至没有提供一个干净有序的命令表有了这些图书馆。。。在这种情况下有无数的线程,为什么没有最终或普遍接受的解决方案?@chris deneb:为什么不使用Excel VBA?这一切都很简单。@Jean Francois谢谢你的回答我知道有很多更好、更高效的方法来完成这个项目,但这是为了我的学位,所以很遗憾,我不能用任何其他方法。。。必须有一个程序,用户可以从中导入excel,该程序可以根据excel中的数据计算比率。此外,该计划应该有能力创造这些卓越的谢谢你这么多!这将是伟大的,如果我使这个工作非常好的解决方案!但到目前为止,我有两个错误1。找不到类型或命名空间名称“Olecommand”是否缺少using指令或程序集引用?2.我尝试使用System.Data.Oledb添加的Oleconnection也是如此;没有工作,然后我尝试添加一些参考,但仍然没有。。。我该怎么办?我找到了!!!它通过使用System.Data.Oledb添加而工作,并且没有额外的引用,唯一的区别是我将OleCommand编写为OleDbCommand,将OleConnection编写为OleDbConnection再次感谢!我的错。。。打字错误我是从头上做的,哈哈。。。很高兴我能帮忙:。。。我已经更新了示例以反映您的更改:那么读取特定单元格的代码是什么?您知道,在“处理工作表数据”区域中;我需要用openfile对话框打开一个.xls,然后自动读取一些特定的单元格,并将它们的值复制到我的应用程序的主窗体datagridview中。我想问的是,OleDbConnextion会将整个excel导入我的datagrid。。。我需要做一些计算,然后在数据网格中只导入结果。。。这可能吗?