我有一个excel(.xlsm)文件,通过excel加载项“finansu”更新股票市场实时数据。 当我尝试通过股票名称列中的C#应用程序读取Excel数据时,它显示正确的股票名称,但在值列中它不显示任何内容。该股票价值列通过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);
答案 0 :(得分:2)
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);
}
}
}