生成新的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); }

浙公网安备 33010602011771号