生成新的execl


 要用execl2003组件才可以

 Microsoft.Office.Interop.Excel.Application execl = new Microsoft.Office.Interop.Excel.Application();
            Workbook book = execl.Workbooks.Add(true);
            Worksheet sheet = (Worksheet)book.Worksheets["sheet1"];

 

 这个方法如果不跨行 跨列为0就可以。

View Code
    /// <summary>
        /// 
        /// </summary>
        /// <param name="book">Worksheet对象</param>
        /// <param name="value">合拼单元格的值</param>
        /// <param name="col">第几列</param>
        /// <param name="row">第几行</param>
        /// <param name="count">跨列的数</param>
        public void Combine(Worksheet book, string value, ref int col, string row, int count)
        {
            System.Text.ASCIIEncoding coding = new System.Text.ASCIIEncoding();
            byte[] x = new byte[] { (byte)col };
            string cell = coding.GetString(x) + row;
            col += count;
            x = new byte[] { (byte)col };
            string rows = coding.GetString(x) + row;
            Range ran = book.get_Range(cell, rows);
            ran.Value2 = value;
            ran.HorizontalAlignment = XlHAlign.xlHAlignCenter;//居中            
            ran.Merge(false);//参数为True则为每一行合并为一个单元格
            ran.Application.DisplayAlerts = false;
        }

 

 保存释放

   execl.Application.DisplayAlerts = false;//使合并操作不提示警告信息
            book.SaveAs(Server.MapPath(name));//这里保存要用别的一个方法 在服务器上 用这个会报错服务器上
            execl.Quit();//释放
View Code
       /// <summary>
        /// ascii获取英文字符 A的ascii为56
        /// </summary>
        /// <param name="A">int</param>
        /// <returns></returns>
        public string GetEnglish(int A)
        {
            System.Text.ASCIIEncoding coding = new System.Text.ASCIIEncoding();
            byte[] x = new byte[] { (byte)A };
            return coding.GetString(x);
        }

 

posted on 2012-09-28 16:48  R.Ray  阅读(249)  评论(0)    收藏  举报

导航