using
System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication16
{
class Program
{
static void Main( string [] args)
{
// 不通过OLE生成excel文件的方法
ExcelWriter excel = new ExcelWriter( @" 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();
}
}
public class ExcelWriter
{
System.IO.FileStream _wirter;
public ExcelWriter( string strPath)
{
_wirter = new System.IO.FileStream(strPath, System.IO.FileMode.OpenOrCreate);
}
/// <summary>
/// 写入short数组
/// </summary>
/// <param name="values"></param>
private void _writeFile( short [] values)
{
foreach ( short v in values)
{
byte [] b = System.BitConverter.GetBytes(v);
_wirter.Write(b, 0 , b.Length);
}
}
/// <summary>
/// 写文件头
/// </summary>
public void BeginWrite()
{
_writeFile( new short [] { 0x809 , 8 , 0 , 0x10 , 0 , 0 });
}
/// <summary>
/// 写文件尾
/// </summary>
public void EndWrite()
{
_writeFile( new short [] { 0xa , 0 });
_wirter.Close();
}
/// <summary>
/// 写一个数字到单元格x,y
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="value"></param>
public void WriteNumber( short x, short y, double value)
{
_writeFile( new short [] { 0x203 , 14 , x, y, 0 });
byte [] b = System.BitConverter.GetBytes(value);
_wirter.Write(b, 0 , b.Length);
}
/// <summary>
/// 写一个字符到单元格x,y
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="value"></param>
public void WriteString( short x, short y, string value)
{
byte [] b = System.Text.Encoding.Default.GetBytes(value);
_writeFile( new short [] { 0x204 , ( short )(b.Length + 8 ), x, y, 0 , ( short )b.Length });
_wirter.Write(b, 0 , b.Length);
}
}
}
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication16
{
class Program
{
static void Main( string [] args)
{
// 不通过OLE生成excel文件的方法
ExcelWriter excel = new ExcelWriter( @" 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();
}
}
public class ExcelWriter
{
System.IO.FileStream _wirter;
public ExcelWriter( string strPath)
{
_wirter = new System.IO.FileStream(strPath, System.IO.FileMode.OpenOrCreate);
}
/// <summary>
/// 写入short数组
/// </summary>
/// <param name="values"></param>
private void _writeFile( short [] values)
{
foreach ( short v in values)
{
byte [] b = System.BitConverter.GetBytes(v);
_wirter.Write(b, 0 , b.Length);
}
}
/// <summary>
/// 写文件头
/// </summary>
public void BeginWrite()
{
_writeFile( new short [] { 0x809 , 8 , 0 , 0x10 , 0 , 0 });
}
/// <summary>
/// 写文件尾
/// </summary>
public void EndWrite()
{
_writeFile( new short [] { 0xa , 0 });
_wirter.Close();
}
/// <summary>
/// 写一个数字到单元格x,y
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="value"></param>
public void WriteNumber( short x, short y, double value)
{
_writeFile( new short [] { 0x203 , 14 , x, y, 0 });
byte [] b = System.BitConverter.GetBytes(value);
_wirter.Write(b, 0 , b.Length);
}
/// <summary>
/// 写一个字符到单元格x,y
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="value"></param>
public void WriteString( short x, short y, string value)
{
byte [] b = System.Text.Encoding.Default.GetBytes(value);
_writeFile( new short [] { 0x204 , ( short )(b.Length + 8 ), x, y, 0 , ( short )b.Length });
_wirter.Write(b, 0 , b.Length);
}
}
}