C# 我获得二进制文件流怎么转化为EXCEL对象?之前是通过路径去拿一个EXCEL文件现在只有一个文件流
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 我获得二进制文件流怎么转化为EXCEL对象?之前是通过路径去拿一个EXCEL文件现在只有一个文件流相关的知识,希望对你有一定的参考价值。
Application app = new Application();
Workbooks wbs = app.Workbooks;
_Workbook _wbk = wbs.Add(@"路径");
Sheets shs = _wbk.Sheets;
_Worksheet _wsh = (_Worksheet)shs.get_Item(1);
if (strFileName != "")
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFileName + ";Extended Properties=Excel 8.0";
string sql = "select * from [Sheet1$]";
OleDbDataAdapter da = newOleDbDataAdapter(sql, conn);
DataSet ds = newDataSet();
try
da.Fill(ds, "datatable");
catch
return ds;
else
return null;
这个方法我经常用,转成dataset和datatable没什么太大区别吧,反正ds.Tables[0]就是dataTable了追问
我这个方法是知道一个Excel文件的路径然后挨个单元格读取我需要的数据,现在问题是,我没有这样一个路径了,给我的只有一个Excel文件的二进制文件流,就是不知道怎么转了,公司不允许用外部组件,想问问看有没有什么其他的方法
参考技术A 文件流可以存储为文件。(C#)把一个byte数组转换成一个二进制流!
DPFP.Template Template;
byte[] fingerPrintBytes =null;
Templates.Serialize(ref fingerPrintBytes);
我上面的fingerPrintBytes已经获取了数组数据,接着我上面的东西,怎么把fingerPrintBytes转成一个二进制流?
以及转换回来成DPFP.Template的方法!
或者还有其他更好的方法。。。? 提供满意答案者加分!
public class Template : Data
public Template();
public Template(Stream DataStream);
---------------------------------------------------------
public abstract class Data
protected byte[] _Data;
public Data();
public Data(Stream DataStream);
public byte[] Bytes get;
public int Size get;
public void DeSerialize(byte[] ArrayOfBytes);
public void DeSerialize(Stream DataStream);
public byte[] Serialize(ref byte[] ArrayOfBytes);
public Stream Serialize(Stream DataStream);
你的意思是不是转换成二进制字符串?
将fingerPrintBytes 代入 bytesTest
strResult就是二进制字符串
//byte[]转为二进制字符串表示
byte[] bytesTest =new byte[]16,18,33;
string strResult=string.Empty;
string strTemp;
for(int i=0;i<bytesTest.Length;i++)
strTemp=System.Convert.ToString(bytesTest[i], 2);
strTemp =strTemp.Insert(0,new string('0',8-strTemp.Length));
strResult+=strTemp;
参考技术A 转换成流
MemoryStream stream = new MemoryStream(fingerPrintBytes);
你的DPFP.Template是什么对象
以上是关于C# 我获得二进制文件流怎么转化为EXCEL对象?之前是通过路径去拿一个EXCEL文件现在只有一个文件流的主要内容,如果未能解决你的问题,请参考以下文章