在 C# 中将 OracleDataReader 导出到 Excel

Posted

技术标签:

【中文标题】在 C# 中将 OracleDataReader 导出到 Excel【英文标题】:Export OracleDataReader to Excel in C# 【发布时间】:2010-12-17 12:42:09 【问题描述】:

我有这样的代码,

string ConnectionString = ConfigurationManager.ConnectionStrings["ora"].ConnectionString;

OracleConnection conn = new OracleConnection(ConnectionString);

string sql = @"SELECT DISTINCT(B.MUS_K_ISIM), A.HESAP_NO
  FROM S_TAKIP_MUSTERI A, S_TEKLIF B
  WHERE A.HESAP_NO = B.HESAP_NO
  ORDER BY B.MUS_K_ISIM";

conn.Open();

OracleCommand cmd = new OracleCommand(sql, conn);
cmd.CommandType = System.Data.CommandType.Text;

OracleDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);

如何将来自 DataReader 的一些信息导出到 Excel?我想要什么,当我单击按钮时,从 DataReader 导出 Excel。

【问题讨论】:

您有两个基本选项:使用 Excel 自动化生成文件,或使用库,例如***.com/questions/151005/…。如果您在 Web 服务器上运行它,它必须是一个库,您无法自动化 Excel。不过,我不知道有任何接受 DataSet 作为输入的,但这是一个很常见的问题。 但是DataReader没有例子..! 不,抱歉,我没有相应的代码。基本想法是 1. 制作新工作簿,新工作表。 2. GetSchemaTable() 并使用它来生成列标题和设置数据类型。 3. 遍历每一行,将每一列的值添加到工作表上的一个新单元格中。 4. 保存、关闭、清理。我希望有足够的文档来解决所有问题。 【参考方案1】:

可以使用 Microsoft.Office.Interop.Excel 创建一个 excel 实例,然后遍历并使用数据填充电子表格中的单元格。

【讨论】:

我已经有了一个对数据集执行此操作的函数。所以我可以创建一个使用数据读取器的修改函数。这可能需要一点时间,因为我在工作,而且还会忙于其他事情。

以上是关于在 C# 中将 OracleDataReader 导出到 Excel的主要内容,如果未能解决你的问题,请参考以下文章

OracleDataReader 抛出异常

如何使用 OracleDataReader 检索给定记录的所有字段?

OracleDataReader 将多个结果提取到 csv

从 C# 访问 Oracle 数据库

OracleDataReader reader.Read() 从第二个记录行开始读取行,跳过第一行记录

为啥 C# 允许在浮点类型中将非零数除以零?