2021-3-9 excel导出

public void ExportExcel(DataTable dt)
        {
            //要添加epplus的nuget包
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;//epplus的5.0版本以上的要加这行非商用声明
            //新建一个 Excel 工作簿
            ExcelPackage package = new ExcelPackage();

            // 添加一个 sheet 表
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(dt.TableName);

            int rowIndex = 1;   // 起始行为 1
            int colIndex = 1;   // 起始列为 1

            //设置列名
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                worksheet.Cells[rowIndex, colIndex + i].Value = dt.Columns[i].ColumnName;

                //自动调整列宽,也可以指定最小宽度和最大宽度
                worksheet.Column(colIndex + i).AutoFit();
            }

            // 跳过第一列列名
            rowIndex++;

            //写入数据
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    worksheet.Cells[rowIndex + i, colIndex + j].Value = dt.Rows[i][j].ToString();
                }

                //自动调整行高
                worksheet.Row(rowIndex + i).CustomHeight = true;
            }

            //设置字体,也可以是中文,比如:宋体
            worksheet.Cells.Style.Font.Name = "Arial";

            //字体加粗
            worksheet.Cells.Style.Font.Bold = true;

            //字体大小
            worksheet.Cells.Style.Font.Size = 12;

            //字体颜色
            //worksheet.Cells.Style.Font.Color.SetColor(System.Drawing.Color.Black);

            //单元格背景样式,要设置背景颜色必须先设置背景样式
            //worksheet.Cells.Style.Fill.PatternType = ExcelFillStyle.Solid;
            //单元格背景颜色
            //worksheet.Cells.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.DimGray);

            //设置单元格所有边框样式和颜色
            //worksheet.Cells.Style.Border.BorderAround(ExcelBorderStyle.Thin, System.Drawing.ColorTranslator.FromHtml("#0097DD"));

            //单独设置单元格四边框 Top、Bottom、Left、Right 的样式和颜色
            //worksheet.Cells.Style.Border.Top.Style = ExcelBorderStyle.Thin;
            //worksheet.Cells.Style.Border.Top.Color.SetColor(System.Drawing.Color.Black);

            //垂直居中
            worksheet.Cells.Style.VerticalAlignment = ExcelVerticalAlignment.Center;

            //水平居中
            worksheet.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

            //单元格是否自动换行
            worksheet.Cells.Style.WrapText = false;

            //设置单元格格式为文本
            worksheet.Cells.Style.Numberformat.Format = "@";

            //单元格自动适应大小
            worksheet.Cells.Style.ShrinkToFit = true;

            //worksheet.Dispose();
            //package.Dispose();
            ////第一种保存方式
            //string path1 ="";
            //string filePath1 = path1 + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".xlsx";
            //FileStream fileStream1 = new FileStream(filePath1, FileMode.Create);
            ////保存至指定文件
            //FileInfo fileInfo = new FileInfo(filePath1);
            //package.SaveAs(fileInfo);

            ////第二种保存方式
            string path2 = ""; /*HttpContext.Current.Server.MapPath("Export/");*/
            string filePath2 = path2 + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".xlsx";
            FileStream fileStream2 = new FileStream(filePath2,FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
            //写入文件流
            package.SaveAs(fileStream2);
            

            //创建一个内存流,然后转换为字节数组,输出到浏览器下载
            //MemoryStream ms = new MemoryStream();
            //package.SaveAs(ms);
            //byte[] bytes = ms.ToArray();

            //也可以直接获取流
            //Stream stream = package.Stream;

            //也可以直接获取字节数组
            byte[] bytes = package.GetAsByteArray();

            //调用下面的方法输出到浏览器下载
            //OutputClient(bytes);
            fileStream2.Flush();
            fileStream2.Close();
            worksheet.Dispose();
            package.Dispose();
        }

 

上一篇:[agc028f]Reachable Cells


下一篇:搬家第14天-173.Wincc V7.3 vbs 读取多个变量归档数据到excel