想在 excel文件末尾加入一个GUID字符串,用户下载后在上传上来是我就可以知道是下载的那个文件了。如果写入和读取呢?

解决方案 »

  1.   

    用户下载后在上传上来是我就可以知道是下载
    --------------------
    那如果用户把最后的guid删除了呢,你怎么判断?
      

  2.   

    打开excel 模板,赋值给单元格
    或修改excel名称加Guid.NewGuid().ToString()
    很难判断,excel用户可操作
      

  3.   

            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文件不能在打开了。
      

  4.   

    搞定也,向末尾写入数据是可以了。接下来要判断是不是已经写入。
    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();        }