DataTable作为数据源导出Excel
2016-11-24 15:33
375 查看
#region DataTable生成Excel /// <summary> /// DataTable生成Excel /// </summary> /// <param name="dtList">DataTable</param> /// <param name="fileName">文件名</param> /// <returns>返回文件名(包含扩展名)</returns> public static string ExportToExcel(DataTable dtList, string fileName) { string pathToFiles = System.Web.HttpContext.Current.Server.MapPath(ExportFilesPath); string etsName = ".xls"; //获取保存路径 string path = pathToFiles + fileName + etsName; Aspose.Cells.Workbook wb = new Workbook(); Worksheet ws = wb.Worksheets[0]; Cells cell = ws.Cells; //cell.SetRowHeight(0, 20); //设置行高 //表头样式 Style stHeadLeft = wb.Styles[wb.Styles.Add()]; stHeadLeft.HorizontalAlignment = TextAlignmentType.Left; //文字居中 stHeadLeft.Font.Name = "宋体"; stHeadLeft.Font.IsBold = true; //设置粗体 stHeadLeft.Font.Size = 14; //设置字体大小 Style stHeadRight = wb.Styles[wb.Styles.Add()]; stHeadRight.HorizontalAlignment = TextAlignmentType.Right; //文字居中 stHeadRight.Font.Name = "宋体"; stHeadRight.Font.IsBold = true; //设置粗体 stHeadRight.Font.Size = 14; //设置字体大小 //内容样式 Style stContentLeft = wb.Styles[wb.Styles.Add()]; stContentLeft.HorizontalAlignment = TextAlignmentType.Left; stContentLeft.Font.Size = 10; Style stContentRight = wb.Styles[wb.Styles.Add()]; stContentRight.HorizontalAlignment = TextAlignmentType.Right; stContentRight.Font.Size = 10; //赋值给Excel内容 for (int col = 0; col < dtList.Columns.Count; col++) { Style stHead = null; Style stContent = null; //设置表头 string columnType = dtList.Columns[col].DataType.ToString(); switch (columnType.ToLower()) { case "system.string": stHead = stHeadLeft; stContent = stContentLeft; break; default: stHead = stHeadRight; stContent = stContentRight; break; } //插入表头到Excel内 cell[0, col].PutValue(dtList.Columns[col].ColumnName); cell[0, col].SetStyle(stHead); for (int row = 0; row < dtList.Rows.Count; row++) { object _value=dtList.Rows[row][col]; if (_value != Convert.DBNull) { //插入内容到Excel内 switch (columnType.ToLower()) { case "system.int32": cell[row + 1, col].PutValue(Convert.ToInt32(_value)); break; case "system.int64": cell[row + 1, col].PutValue(Convert.ToInt64(_value)); break; case "system.datetime": cell[row + 1, col].PutValue(Convert.ToDateTime(_value).ToString("yyyy/M/d HH:mm")); break; case "system.boolean": cell[row + 1, col].PutValue(Convert.ToBoolean(_value)); break; default: cell[row + 1, col].PutValue(_value.ToString()); break; } } cell[row + 1, col].SetStyle(stContent); } } wb.Save(path); return ExportFilesPath + fileName + etsName; } #endregion private static void putValue(Cells cell, object value, int row, int column, Style st) { cell[row, column].PutValue(value); cell[row, column].SetStyle(st); } #region 将easyUI grid数据直接导出生成Excel /// <summary> /// 将easyUI grid数据直接导出生成Excel /// </summary> /// <param name="data">数据内容</param> /// <param name="fileName">excel文件名</param> /// <returns>返回文件路径</returns> public static string GridToExcel(string data, string fileName) { //获取前台post提交的数据 //定义生成文件的目录,获取绝对地址 string pathToFiles = System.Web.HttpContext.Current.Server.MapPath("/ExcelFile/UploadFile"); //定义生成文件的名称 string fname = fileName + ".xls"; //组合成文件的路径 string path = @"" + pathToFiles + "\\" + fname; //判断是否已经存在文件 if (!System.IO.File.Exists(path)) { //新建文件,并写入数据 System.IO.File.WriteAllText(path, data, Encoding.UTF8); } else { //文件已存在,添加写入数据 System.IO.File.AppendAllText(path, data, Encoding.UTF8);//如果是gb2312的xml申明,第三个编码参数修改为Encoding.GetEncoding(936) } return ExportFilesPath + fname; } #endregion
相关文章推荐
- web中将DataTable作为数据源导出Excel (带格式)
- 将Excel文件导出至DataTable(第一行作为表头)
- 从DataSet 导出到Excel(是DataSet中的每个DataTable对应每个Sheet)
- DataTable中的数据导出Excel文件
- ASP.NET将datatable的数据导出到excel,好用!不好用你打我啊
- .net 使用NPOI或MyXls把DataTable导出到Excel
- C#中 dataGridView和DataTable 导出Excel的方法
- DataTable中数据导出成Excel文件
- 将DataTable数据导出Excel
- devexpress导出数据到excel,数据源为多个xtrareport时,多个sheet导出
- 将DataTable导出为Excel (XML Spreadsheet).
- C#使用EPPlus.dll动态库在一般处理程序中实现将datatable导出到excel
- 导出DataTable数据到Excel文档(通过验证,但没有标题)
- 将数据源DataSet导出成Excel表格形式
- DataTable数据导出到EXCEL
- [WinForm]将DataTable简单导出为Excel和Txt
- asp.net DataTable导出Excel自定义列名的方法
- DataTable导出Excel
- DataTable 类型 导出Excel 方法
- c# 把数据表DataTable 导出到Excel