嗨伙计,
权,因此,以下是从别人谁是不打扰它做什么它是如何使用它的代码片段。此代码是一个可以用来生成Excel文件使用C#和不使用互操作的类的一部分。我必须说,它的工作原理,但是,IMA位USHORT []数组和正在进行的六角魔脑麻木。请看看,看看,如果你能帮助我神秘性他们:
public sealed class ExcelWriter : IDisposable
{
// private Stream stream;
private readonly BinaryWriter writer;
private readonly ushort[] begin = { 0x0809, 8, 0, 0x10, 0, 0 };
private readonly ushort[] end = { 0x0A, 00 };
public ExcelWriter(Stream stream)
{
// this.stream = stream;
writer = new BinaryWriter(stream);
}
public void WriteCell(int row, int col, string value)
{
ushort[] data = { 0x0204, 0, 0, 0, 0, 0 };
var len = value.Length;
var plainText = Encoding.ASCII.GetBytes(value);
data[1] = (ushort)(8 + len);
data[2] = (ushort)row;
data[3] = (ushort)col;
data[5] = (ushort)len;
WriteUshortArray(data);
writer.Write(plainText);
}
...
}
我解剖特别WriteCell()方法,这实际上是由一个主方法中调用,如果你会写一个DataTable值的BinaryWriter和FileStream(相当多的标准的东西)。我想这样的事情,这是此代码的大量剥离下来,养肥的版本:
{C}
当我打开temp.xls,它打开了一个不同的格式的警告,但我仍然可以看到我的数据。所以我想,那些小的"十六进制德鲁伊"是做什么神秘的,没有任何警告的情况下打开文件。
请不要点"傻瓜"十六进制"我还挺网站,我知道它们是什么,我只是想知道什么是地狱,他们在Excel生成代码,以及如何做呢? {S0的}
非常感谢...