通过文件结构直接生成xls文件
来源:优易学  2011-12-31 15:15:38   【优易学:中国教育考试门户网】   资料下载   IT书店
  以下代码演示了 直接通过excel可以识别的文件结构生成xls文件的方法,这样就可以不引用麻烦的ole了。
  usingSystem;
  usingSystem.Collections.Generic;
  usingSystem.Text;
  namespaceConsoleApplication16
  {
  classProgram
  {
  staticvoidMain(string[]args)
  {
  //不通过OLE生成excel文件的方法
  ExcelWriterexcel=newExcelWriter(@"c:test.xls");
  excel.BeginWrite();
  excel.WriteString(0,0,"Name");
  excel.WriteString(0,1,"Score");
  excel.WriteString(1,0,"jinjazz"); 
  excel.WriteNumber(1,1,100);
  excel.WriteString(2,0,"游客");
  excel.WriteNumber(2,1,0);
  excel.EndWrite();
  }
  }
  publicclassExcelWriter
  {
  System.IO.FileStream_wirter;
  publicExcelWriter(stringstrPath)
  {
  _wirter=newSystem.IO.FileStream(strPath,System.IO.FileMode.OpenOrCreate);
  }
  ///<summary>
  ///写入short数组
  ///</summary>
  ///<paramname="values"></param>
  privatevoid_writeFile(short[]values)
  {
  foreach(shortvinvalues)
  {
  byte[]b=System.BitConverter.GetBytes(v);
  _wirter.Write(b,0,b.Length);
  }
  }
  ///<summary>
  ///写文件头
  ///</summary>
  publicvoidBeginWrite()
  {
  _writeFile(newshort[]{0x809,8,0,0x10,0,0});
  }
  ///<summary>
  ///写文件尾
  ///</summary>
  publicvoidEndWrite()
  {
  _writeFile(newshort[]{0xa,0});
  _wirter.Close();
  }
  ///<summary>
  ///写一个数字到单元格x,y
  ///</summary>
  ///<paramname="x"></param>
  ///<paramname="y"></param>
  ///<paramname="value"></param>
  publicvoidWriteNumber(shortx,shorty,doublevalue)
  {
  _writeFile(newshort[]{0x203,14,x,y,0});
  byte[]b=System.BitConverter.GetBytes(value);
  _wirter.Write(b,0,b.Length);
  }
  ///<summary>
  ///写一个字符到单元格x,y
  ///</summary>
  ///<paramname="x"></param>
  ///<paramname="y"></param>
  ///<paramname="value"></param>
  publicvoidWriteString(shortx,shorty,stringvalue)
  {
  byte[]b=System.Text.Encoding.Default.GetBytes(value);
  _writeFile(newshort[]{0x204,(short)(b.Length+8),x,y,0,(short)b.Length});
  _wirter.Write(b,0,b.Length);
  }
  }
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训