应用Aspose.Cells导入文件Execl

1.应引用Aspose.Cells.dll类

  1    #region //导出文件
  2         private void Export(DataTable dt, string tableName)
  3         {
  4 
  5             Workbook workbook = new Workbook(); //工作簿 
  6             Worksheet sheet = workbook.Worksheets[0]; //工作表 
  7             Cells cells = sheet.Cells;//单元格 
  8 
  9 
 10             #region//表格样式
 11 
 12             //为标题设置样式    
 13             Aspose.Cells.Style style1 = workbook.Styles[workbook.Styles.Add()];//新增样式
 14             style1.HorizontalAlignment = TextAlignmentType.Center;//文字居中
 15             style1.Font.Name = "宋体";//文字字体
 16             style1.Font.Size = 16;//文字大小
 17             style1.Font.IsBold = true;//粗体
 18 
 19 
 20             //为标题设置样式2
 21             Aspose.Cells.Style style2 = workbook.Styles[workbook.Styles.Add()];//新增样式 
 22             style2.HorizontalAlignment = TextAlignmentType.Center;//文字居中 
 23             style2.Font.Name = "宋体";//文字字体 
 24             style2.Font.Size = 10;//文字大小 
 25             style2.Font.IsBold = true;//粗体 
 26             style2.IsTextWrapped = true;//自动换行
 27             style2.Pattern = BackgroundType.Solid; //设置背景样式
 28             style2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; //应用边界线 左边界线
 29             style2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线
 30             style2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; //应用边界线 上边界线
 31             style2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //应用边界线 下边界线
 32 
 33             //为标题设置样式3
 34             Aspose.Cells.Style style3 = workbook.Styles[workbook.Styles.Add()];//新增样式 
 35             style3.HorizontalAlignment = TextAlignmentType.Center;//文字居中 
 36             style3.Font.Name = "宋体";//文字字体 
 37             style3.Font.Size = 10;//文字大小 
 38             style3.IsTextWrapped = true;//自动换行
 39             style3.Pattern = BackgroundType.Solid; //设置背景样式
 40             style3.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; //应用边界线 左边界线
 41             style3.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线
 42             style3.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; //应用边界线 上边界线
 43             style3.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //应用边界线 下边界线
 44 
 45             //字体样式
 46             Aspose.Cells.Style font1 = workbook.Styles[workbook.Styles.Add()];//新增样式
 47             font1.HorizontalAlignment = TextAlignmentType.Left;//文字居中
 48             font1.Font.Name = "宋体";//文字字体
 49             font1.Font.Size = 10;//文字大小
 50             font1.Font.IsBold = true;//粗体
 51             font1.IsTextWrapped = true;//自动换行
 52             font1.Pattern = BackgroundType.Solid; //设置背景样式
 53             font1.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; //应用边界线 左边界线
 54             font1.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线
 55             font1.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; //应用边界线 上边界线
 56             font1.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //应用边界线 下边界线
 57 
 58             //字体样式
 59             Aspose.Cells.Style font2 = workbook.Styles[workbook.Styles.Add()];//新增样式
 60             font2.HorizontalAlignment = TextAlignmentType.Left;//文字居中
 61             font2.Font.Name = "宋体";//文字字体
 62             font2.Font.Size = 10;//文字大小
 63             font2.IsTextWrapped = true;//自动换行
 64             font2.Pattern = BackgroundType.Solid; //设置背景样式
 65             font2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; //应用边界线 左边界线
 66             font2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线
 67             font2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; //应用边界线 上边界线
 68             font2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //应用边界线 下边界线
 69 
 70             #endregion
 71 
 72             int Rownum = dt.Rows.Count;//表格行数
 73 
 74             //生成行2 列名行
 75             cells[0, 0].PutValue("#");
 76             cells[0, 0].SetStyle(style2);
 77             cells[0, 1].PutValue("#");
 78             cells[0, 1].SetStyle(style2);
 79             cells[0, 2].PutValue("#");
 80             cells[0, 2].SetStyle(style2);
 81             cells[0, 3].PutValue("#");
 82             cells[0, 3].SetStyle(style2);
 83             cells[0, 4].PutValue("#");
 84             cells[0, 4].SetStyle(style2);
 85             cells[0, 5].PutValue("#");
 86             cells[0, 5].SetStyle(style2);
 87             cells[0, 6].PutValue("#");
 88             cells[0, 6].SetStyle(style2);
 89             cells[0, 7].PutValue("#");
 90             cells[0, 7].SetStyle(style2);
 91 
 92             cells.SetRowHeight(1, 35);
 93 
 94             for (int i = 0; i < Rownum; i++)
 95             {
 96 
 97                 cells[1 + i, 0].PutValue(dt.Rows[i]["#"].ToString());
 98                 cells[1 + i, 1].PutValue(dt.Rows[i]["#"].ToString());
 99                 cells[1 + i, 2].PutValue(dt.Rows[i]["#"].ToString());
100                 cells[1 + i, 3].PutValue(dt.Rows[i]["#"].ToString());
101                 cells[1 + i, 4].PutValue(dt.Rows[i]["#"].ToString());
102                 cells[1 + i, 5].PutValue(dt.Rows[i]["#"].ToString());
103                 cells[1 + i, 6].PutValue(dt.Rows[i]["#"].ToString());
104                 cells[1 + i, 7].PutValue(dt.Rows[i]["#"].ToString());
105                 for (int k = 0; k < 8; k++)
106                 {
107                     cells[1 + i, k].SetStyle(style3);
108                 }
109 
110                 cells.SetRowHeight(1 + i, 30);
111 
112             }
113             //setColumnWithAuto(sheet);
114 
115             Response.Clear();
116             Response.Buffer = true;
117             Response.Charset = "utf-8";
118             string strTemp = System.Web.HttpUtility.UrlEncode(tableName, System.Text.Encoding.UTF8);//解决文件名乱码
119             Response.AppendHeader("Content-Disposition", "attachment;filename=" + strTemp + ".xlsx");
120             Response.ContentEncoding = System.Text.Encoding.UTF8;
121             Response.ContentType = "application/ms-excel";
122             Response.BinaryWrite(workbook.SaveToStream().ToArray());
123             Response.End();
124 
125             webmsg.message("下载成功!");
126         }
127 
128         /// <summary>       
129         /// 
130         /// 设置表页的列宽度自适应   
131         /// /// </summary>       
132         /// /// <param name="sheet">worksheet对象</param>  
133         /// 
134         public static void setColumnWithAuto(Worksheet sheet)
135         {
136             Cells cells = sheet.Cells;
137             int columnCount = cells.MaxColumn;  //获取表页的最大列数   
138             int rowCount = cells.MaxRow;        //获取表页的最大行数      
139             for (int col = 0; col <= columnCount; col++)
140             {
141                 sheet.AutoFitColumn(col, 0, rowCount);
142             }
143             for (int col = 0; col <= columnCount; col++)
144             {
145                 int width = 0;
146                 switch (col)
147                 {
148                     case 0: width = 120;
149                         break;
150                     case 1: width = 5;
151                         break;
152                     case 2: width = 5;
153                         break;
154                     case 3: width = 5;
155                         break;
156                     case 4: width = 50;
157                         break;
158                     case 5: width = 150;
159                         break;
160                     case 6: width = 50;
161                         break;
162                 }
163 
164                 cells.SetColumnWidthPixel(col, cells.GetColumnWidthPixel(col) + width);
165             }
166         }
167         #endregion

 

posted on 2017-07-18 11:49  技术引领未来-李亮  阅读(77)  评论(0编辑  收藏  举报