如何在excel文件末尾写入一个字符串,并读取,对源文件使用不影响 想在 excel文件末尾加入一个GUID字符串,用户下载后在上传上来是我就可以知道是下载的那个文件了。如果写入和读取呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用户下载后在上传上来是我就可以知道是下载--------------------那如果用户把最后的guid删除了呢,你怎么判断? 打开excel 模板,赋值给单元格或修改excel名称加Guid.NewGuid().ToString()很难判断,excel用户可操作 static void Main(string[] args) { FileStream sourceFile = new FileStream("F:\\05电量分配单.xls", FileMode.Open); BinaryReader sourceRead = new BinaryReader(sourceFile); long oldlength = sourceFile.Length; char[] buff = new char[oldlength+5]; sourceRead.Read(buff, 0, buff.Length); buff[oldlength+0]='A'; buff[oldlength+1]='B'; buff[oldlength+2]='C'; buff[oldlength+3]='D'; buff[oldlength+4]='E'; FileStream newFile = new FileStream("F:\\05电量分配单2.xls", FileMode.CreateNew); BinaryWriter newWrite = new BinaryWriter(newFile); newWrite.Write(buff, 0, buff.Length ); newFile.Close(); newWrite.Close(); sourceFile.Close(); sourceRead.Close(); }在文件后面附加一个字符串,肯定是可以的。上面的代码我是想在文件后面加上 ABCDE,可是生成的文件格式让破坏了,Excel文件不能在打开了。 搞定也,向末尾写入数据是可以了。接下来要判断是不是已经写入。static void Main(string[] args) { //读取源文件 FileStream sourceFile = new FileStream("F:\\05电量分配单.xls", FileMode.Open); BinaryReader sourceRead = new BinaryReader(sourceFile); long oldlength = sourceFile.Length; byte[] buff = new byte[oldlength + 5]; // sourceFile.Read( sourceRead.Read(buff, 0, buff.Length); buff[oldlength + 0] = (int)'A'; buff[oldlength + 1] = (int)'B'; buff[oldlength + 2] = (int)'C'; buff[oldlength + 3] = (int)'D'; buff[oldlength + 4] = (int)'E'; //写入新的文件 FileStream newFile = new FileStream("F:\\05电量分配单3.xls", FileMode.Create); BinaryWriter newWrite = new BinaryWriter(newFile); newWrite.Write(buff, 0, buff.Length); newFile.Close(); newWrite.Close(); sourceFile.Close(); sourceRead.Close(); //读取内容 FileStream readFile = new FileStream("F:\\05电量分配单3.xls", FileMode.Open); BinaryReader read = new BinaryReader(readFile); byte[] readbuff = new byte[5]; read.BaseStream.Position = readFile.Length - 5; read.Read(readbuff, 0, 5); for (int i=0;i<readbuff.Length;i++) Console.WriteLine(readbuff[i]); read.Close(); readFile.Close(); } VS2008安装问题 请大家帮忙写个正则表达式? ie7下dropdownlist使用以下方法无效,IE6正常 winform 中多线程如何得到主窗口? 高手进来看一下,复杂数组问题 XNA对显卡的要求啊,难 c#的winform程序占用内存太大请.net版主来解决???? 水晶报表--速度特别慢,该如何解决? 在DATAGRID的父子关系表中怎样禁止子表的新增行? 有没有哪种工具可以自动生成一个类(包括构造函数,get,set等)? Form如何实现标题栏 冰天雪地跪求system.InvalidOperationException异常
--------------------
那如果用户把最后的guid删除了呢,你怎么判断?
或修改excel名称加Guid.NewGuid().ToString()
很难判断,excel用户可操作
{ FileStream sourceFile = new FileStream("F:\\05电量分配单.xls", FileMode.Open);
BinaryReader sourceRead = new BinaryReader(sourceFile);
long oldlength = sourceFile.Length;
char[] buff = new char[oldlength+5];
sourceRead.Read(buff, 0, buff.Length);
buff[oldlength+0]='A';
buff[oldlength+1]='B';
buff[oldlength+2]='C';
buff[oldlength+3]='D';
buff[oldlength+4]='E'; FileStream newFile = new FileStream("F:\\05电量分配单2.xls", FileMode.CreateNew);
BinaryWriter newWrite = new BinaryWriter(newFile);
newWrite.Write(buff, 0, buff.Length );
newFile.Close();
newWrite.Close();
sourceFile.Close();
sourceRead.Close();
}
在文件后面附加一个字符串,肯定是可以的。
上面的代码我是想在文件后面加上 ABCDE,可是生成的文件格式让破坏了,Excel文件不能在打开了。
static void Main(string[] args)
{
//读取源文件
FileStream sourceFile = new FileStream("F:\\05电量分配单.xls", FileMode.Open);
BinaryReader sourceRead = new BinaryReader(sourceFile);
long oldlength = sourceFile.Length;
byte[] buff = new byte[oldlength + 5];
// sourceFile.Read(
sourceRead.Read(buff, 0, buff.Length);
buff[oldlength + 0] = (int)'A';
buff[oldlength + 1] = (int)'B';
buff[oldlength + 2] = (int)'C';
buff[oldlength + 3] = (int)'D';
buff[oldlength + 4] = (int)'E'; //写入新的文件
FileStream newFile = new FileStream("F:\\05电量分配单3.xls", FileMode.Create);
BinaryWriter newWrite = new BinaryWriter(newFile);
newWrite.Write(buff, 0, buff.Length);
newFile.Close();
newWrite.Close();
sourceFile.Close();
sourceRead.Close(); //读取内容
FileStream readFile = new FileStream("F:\\05电量分配单3.xls", FileMode.Open);
BinaryReader read = new BinaryReader(readFile);
byte[] readbuff = new byte[5];
read.BaseStream.Position = readFile.Length - 5;
read.Read(readbuff, 0, 5);
for (int i=0;i<readbuff.Length;i++) Console.WriteLine(readbuff[i]);
read.Close();
readFile.Close(); }