加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 19:26:57 所属栏目:百科 来源:网络整理
导读:参见英文答案 Reading Excel files from C#????????????????????????????????????32个 我正在尝试阅读excel表并向控制台显示内容.代码在这里 FileStream fileStream = new FileStream(@"E:USERSMyWorkbook.xlsx",FileMode.Open,FileAccess.Read); byte[] b
参见英文答案 > Reading Excel files from C#????????????????????????????????????32个
我正在尝试阅读excel表并向控制台显示内容.代码在这里

FileStream fileStream = new FileStream(@"E:USERSMyWorkbook.xlsx",FileMode.Open,FileAccess.Read);
  byte[] byteCode = new byte[fileStream.Length];
  fileStream.Read(byteCode,(int)fileStream.Length);            
  foreach (var byteValue in byteCode)
  {
      Console.Write(Convert.ToChar(byteValue));
  }
  Console.ReadLine();

输出是

PK??? ? ! b??h^? ?? ??[Content_Types].xml ¢??(? ?

??ENA0?E÷HüC?-Jü25í???*Q>A???ac[?ii?????B?§j7±?Iü{2?Ih2nm?????R♀??EAU^←7/>??
ì%??↓?rZY???←@1↓__?f? ?q·AR4DáAJ?→h§?>?a?U?V???1♀aZ”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$?

它出什么问题了?

解决方法

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

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

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

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

How to read data from excel file using c#

这是示例代码

string path = @"E:USERSMyWorkbook.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,"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
   }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读