国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

通過Workbook類 生成Excel導出數據

2019-11-17 02:03:03
字體:
來源:轉載
供稿:網友

通過Workbook類 生成Excel導出數據

需求:

實現錯誤信息生成Excel保存到本地讓用戶查看。

剛開始使用了微軟自帶的Microsoft.Office.Interop.Excel類庫、

 Microsoft.Office.Interop.Excel.application excel = new Microsoft.Office.Interop.Excel.Application();                excel.Visible = true;                //新增加一個工作簿,Workbook是直接保存,不會彈出保存對話框,加上Application會彈出保存對話框,值為false會報錯                  excel.Application.Workbooks.Add(true);                //生成Excel中列頭名稱                  excel.Cells[1, 1] = "姓名";                excel.Cells[1, 2] = "工號";                excel.Cells[1, 3] = "公司";                excel.Cells[1, 4] = "部門";                excel.Cells[1, 5] = "失敗原因";                //把newdt當前頁的數據保存在Excel中                  for (int i = 0; i < newdt.Rows.Count; i++)                {                    excel.Cells[i + 2, 1] = "'" + newdt.Rows[i]["Emp_Name"];                    excel.Cells[i + 2, 2] = "'" + newdt.Rows[i]["Emp_Code"];                    excel.Cells[i + 2, 3] = "'" + newdt.Rows[i]["CompanyName"];                    excel.Cells[i + 2, 4] = "'" + newdt.Rows[i]["DeptName"];                    excel.Cells[i + 2, 5] = "'" + newdt.Rows[i]["Error"];                }                //設置禁止彈出保存和覆蓋的詢問提示框                  excel.DisplayAlerts = false;                excel.AlertBeforeOverwriting = false;                //保存工作簿                  excel.Application.Workbooks.Add(true).Save();                //保存excel文件                  excel.Save("D:" + "http://錯誤信息.xls");                //確保Excel進程關閉                  excel.Quit();                excel = null;

雖然功能實現了、但是由于服務器上沒有安裝Excel、無法調用COM+組件。

并且COM+組件 聽說如果導出過程中出問題可能導致服務器宕機。

經過查閱,修改為調用aspose.Cells組件。

        /// <summary>        /// 導出數據到本地        /// </summary>        /// <param name="dt">要導出的數據</param>        /// <param name="Name">標題</param>        /// <param name="path">保存路徑</param>        public void OutFileToDisk(DataTable dt, string Name, string path)        {            Workbook workbook = new Workbook();            /* 工作簿 */            Worksheet sheet = workbook.Worksheets[0];                               /* 工作表 */            Cells cells = sheet.Cells;                                          /* 單元格 //為標題設置樣式 */            Style styleTitle = workbook.Styles[workbook.Styles.Add()];               /* 新增樣式 */            Style style2 = workbook.Styles[workbook.Styles.Add()];                                  /* 新增樣式 */            style2.HorizontalAlignment = TextAlignmentType.Center;     /* 文字居中 */            style2.Font.Name = "宋體";                         /* 文字字體 */            style2.Font.Size = 12;                           /* 文字大小 */            style2.Font.IsBold = true;                         /* 粗體 */            style2.IsTextWrapped = true;                         /* 單元格內容自動換行 */            style2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;            style2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;            style2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;            style2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;          /* 樣式3 */            Style style3 = workbook.Styles[workbook.Styles.Add()];                                  /* 新增樣式 */            style3.HorizontalAlignment = TextAlignmentType.Center;     /* 文字居中 */            style3.Font.Name = "宋體";                         /* 文字字體 */            style3.Font.Size = 10;                           /* 文字大小 */            style3.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;            style3.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;            style3.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;            style3.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;            int Colnum = dt.Columns.Count;     /* 表格列數 */            int Rownum = dt.Rows.Count;            /* 生成行2 列名行 */            for (int i = 0; i < Colnum; i++)            {                cells[0, i].PutValue(dt.Columns[i].ColumnName);                cells[0, i].SetStyle(style2);                cells.SetRowHeight(0, 20);                cells.SetColumnWidth(i, 20);            }            /* 生成數據行 */            for (int i = 0; i < Rownum; i++)            {                for (int k = 0; k < Colnum; k++)                {                    cells[1 + i, k].PutValue(dt.Rows[i][k].ToString());                    cells[1 + i, k].SetStyle(style3);                }                cells.SetRowHeight(1 + i, 18);            }            //workbook.Save(path);//可以通過Save直接存儲            MemoryStream ms = workbook.SaveToStream();            byte[] bt = ms.ToArray();            string fileName = Name + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";//客戶端保存的文件名            //以字符流的形式下載文件               Response.ContentType = "application/vnd.ms-excel";            //通知瀏覽器下載文件而不是打開            Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));            Response.BinaryWrite(bt);            Response.Flush();            Response.End();        }

分享供大家學習、


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴仁县| 广昌县| 新疆| 蕉岭县| 甘洛县| 石河子市| 丘北县| 随州市| 兰坪| 扎兰屯市| 旬阳县| 乐清市| 泽州县| 金阳县| 天峻县| 蒙山县| 漳平市| 邢台县| 南汇区| 文昌市| 台江县| 肃南| 延庆县| 井研县| 政和县| 温州市| 达拉特旗| 项城市| 新安县| 曲沃县| 连云港市| 尚志市| 邹平县| 庄河市| 崇文区| 雅安市| 碌曲县| 大庆市| 宝兴县| 惠安县| 大竹县|