我有一个 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/