c# - 如何读取 excel (.xlsm) 文件,该文件通过 C# 使用finansu 插件

标签 c# .net excel

我有一个 Excel (.xlsm) 文件,其中包含通过 Excel 插件“finansu”更新的股票市场实时数据。 当我尝试通过 C# 应用程序在股票名称列中读取 Excel 数据时,它显示正确的股票名称,但在值(value)列中它不显示任何内容。该股票值(value)列是通过finansu 加载项更新的实时值。

请帮我阅读这些值。 提前致谢。

下面是源代码:

connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended   Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";"; 

query = "SELECT * FROM [RealTime$]"; 
conn = new OleDbConnection(connString); 

 if (conn.State == ConnectionState.Closed) 
   conn.Open(); 

cmd = new OleDbCommand(query, conn); 
 da = new OleDbDataAdapter(cmd); 
 dt = new System.Data.DataTable(); 
 da.Fill(dt);

最佳答案

OLEDB 将无法检索您想要的数据。我不熟悉 finansu 加载项,但 Excel Interop 应该能够满足您的需求。

Microsoft.Office.Interop.Excel

示例代码:

using Microsoft.Office.Interop.Excel;
using System;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            var filename = @"C:\temp\Book1.xlsx";
            var excel = new Microsoft.Office.Interop.Excel.Application();

            var wb = excel.Workbooks.Open(filename);
            Worksheet realtime = wb.Sheets["RealTime"];

            foreach (Range row in realtime.UsedRange.Rows)
            {
                Console.WriteLine("{0}", row.Cells[1, 1].Value); // Column A
                Console.WriteLine("{0}", row.Cells[1, 2].Value); // Column B
                // etc ...
            }

            wb.Close(SaveChanges: false);
        }
    }
}

关于c# - 如何读取 excel (.xlsm) 文件,该文件通过 C# 使用finansu 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25548526/

相关文章:

c# - C# 是否具有运行时分配的 goto?

c# - .Net 相当于 Java 'Collections.disjoint()' 方法?

c# - Web 浏览器控件无法正确显示 html 文件

c# - 我可以将用户定义的数据类型存储到 Azure 数据库中吗?

java - 字符串实习真的有用吗?

.net - lock()在这里有意义吗?

c# - IdentityRole 上缺少类型映射配置或不受支持的映射

VBA 文本到具有 ""分隔符的列

python - 我们如何将新数据写入现有的 Excel 电子表格?

excel - 如何使用 AppleScript 保存为 excel 文件