在C#中将Excel工作表的内容写入控制台时,输出不是人类可读的格式

Siv*_*ula 3 c# excel file

我正在尝试阅读excel表并向控制台显示内容.代码在这里

  FileStream fileStream = new FileStream(@"E:\USERS\MyWorkbook.xlsx", FileMode.Open, FileAccess.Read);
  byte[] byteCode = new byte[fileStream.Length];
  fileStream.Read(byteCode, 0, (int)fileStream.Length);            
  foreach (var byteValue in byteCode)
  {
      Console.Write(Convert.ToChar(byteValue));
  }
  Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

输出是

PK♥♦♠!b??h ^☺?♦!☻[Content_Types] .xml¢♦☻(☻

¬?ENA0►E÷HüCä-Jܲ5í?Ç↕*Q> AA?ƪc[?iiÿ??û►B¡§j7±↕IÜ{2ñIh²nm??Æ»R♀?? EAU ^←7 /> AC "%¿↨↓?rZYï←@ 1↓__?f??q·AR4DáAJ¬→h§▬>?a?UÇV◄߯1♀ªZ"9EUAàNV_◄8EcO►aÑ!Oji){^óa-I♦?"{Ü▬v^¥P!XS)bR1rú?K_s(, 3O▬▬_§ïßeÖ↔♦»ß1æ►@(?a?sí?►[í?☼öB·LA?F←I↔"fKlk↑ - ¿$♣?A pN $å

它出什么问题了?

小智 6

在Oledb(对象链接和嵌入数据库)的帮助下.OLE DB是Microsoft用于访问不同数据源的战略性低级应用程序接口(API).

OLE DB中的对象主要由数据源对象,会话对象,命令对象和行集对象组成.使用OLE DB的应用程序将使用此请求序列:

  1. 初始化OLE.
  2. 连接到数据源.
  3. 发出命令.
  4. 处理结果.
  5. 释放数据源对象并取消初始化OLE.

这是以前stackoverflow的链接,回答如何使用olddb从excel访问数据.

如何使用c#从excel文件中读取数据

这是示例代码

string path = @"E:\USERS\MyWorkbook.xlsx";
//Create connection string to Excel work book
string excelConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;Persist Security Info=False";

OleDbConnection excelCon = new OleDbConnection(excelConString);

excelCon.Open();

DataTable dtsheet = new DataTable();

dtsheet = excelCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });    

foreach (DataRow row in dtExcelSheet.Rows)
{ 
    Query = string.Format("Select * from [{0}]", row["TABLE_NAME"].ToString());
    //Create OleDbCommand to fetch data from Excel
    OleDbCommand cmd = new OleDbCommand(Query, excelCon);
    DataSet ds = new DataSet();
    OleDbDataAdapter oda = new OleDbDataAdapter(Query, excelCon);
    excelCon.Close();
    oda.Fill(ds);
    DataTable Exceldt = ds.Tables[0];

   foreach (DataRow dr in Exceldt.Rows)
   {
      //code to display
   }
}
Run Code Online (Sandbox Code Playgroud)