基于NPOI用C#開發(fā)的Excel以及表格設(shè)置
本文為大家分享了基于NPOI用C#開發(fā)的Excel以及表格設(shè)置,供大家參考,具體內(nèi)容如下
最近在項目中需要導(dǎo)出Excel。在這里做個記錄。在網(wǎng)上查閱了一些資料。將自己最終的代碼分享在這里,以供自己日后查閱,如果能給陌生的你帶來方便,那便更好。
開發(fā)的過程中也遇到了一個問題,設(shè)置字體會導(dǎo)致打開Excel時報錯(錯誤:此文件中的某些文本格式可能已經(jīng)更改,因為它已經(jīng)超出最多允許的字體數(shù)),并且設(shè)置失敗。這個問題產(chǎn)生的原因是因為頻繁的創(chuàng)建字體,這個在我參考的代碼中是有問題,我做了些改善。如果你有更優(yōu)的方案,期待向你學(xué)習(xí)。
public class ExcelDAL ? ? { ? ? ? ? #region 定義單元格常用到樣式的枚舉 ? ? ? ? public enum stylexls ? ? ? ? { ? ? ? ? ? ? 頭, ? ? ? ? ? ? 列標題, ? ? ? ? ? ? url, ? ? ? ? ? ? 時間, ? ? ? ? ? ? 數(shù)字, ? ? ? ? ? ? 錢, ? ? ? ? ? ? 百分比, ? ? ? ? ? ? 中文大寫, ? ? ? ? ? ? 科學(xué)計數(shù)法, ? ? ? ? ? ? 默認 ? ? ? ? } ? ? ? ? #endregion ? ? ? ? //定義工作薄 ? ? ? ? private static IWorkbook m_workbook;? ? ? ? ? //定義sheet表 ? ? ? ? private static ISheet m_sheet; ? ? ? ? //表名 ? ? ? ? private static List<string> m_sheets=new List<string>(); ? ? ? ? private static ICellStyle m_cellStyle; ? ? ? ? private static IDataFormat m_datastyle; ? ? ? ? //字體 ? ? ? ? private static IFont m_font20; ? ? ? ? //字體 ? ? ? ? private static IFont m_font12; ? ? ? ? //字體 ? ? ? ? private static IFont m_font; ? ? ? ? /// <summary> ? ? ? ? /// 創(chuàng)建Excel表 ? ? ? ? /// </summary> ? ? ? ? /// <param name="dt">傳遞datatable數(shù)據(jù)類型</param> ? ? ? ? /// <param name="filePath">文件保存路徑</param> ? ? ? ? /// <param name="sheetName">工作表名</param> ? ? ? ? /// <param name="headerName">表格標題名</param> ? ? ? ? /// <returns></returns> ? ? ? ? public static bool ExportExcel(System.Data.DataTable dt, string filePath, string sheetName,string headerName="考勤表") ? ? ? ? { ? ? ? ? ? ? ICellStyle cellstytle = null; ? ? ? ? ? ? try ? ? ? ? ? ? { ? ? ? ? ? ? ? ? //如果Excel存在就獲取IWorkbook對象,否則就重新創(chuàng)建 ? ? ? ? ? ? ? ? if (File.Exists(filePath)) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); ? ? ? ? ? ? ? ? ? ? if (filePath.IndexOf(".xlsx") > 0) // 2007版本 ? ? ? ? ? ? ? ? ? ? ? ? m_workbook = new XSSFWorkbook(fs); ? ? ? ? ? ? ? ? ? ? else if (filePath.IndexOf(".xls") > 0) // 2003版本 ? ? ? ? ? ? ? ? ? ? ? ? m_workbook = new HSSFWorkbook(fs); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? //創(chuàng)建一個工作簿 ? ? ? ? ? ? ? ? ? ? m_workbook = new HSSFWorkbook(); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? if (m_workbook != null) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? //獲取所有SheetName ? ? ? ? ? ? ? ? ? ? int count = m_workbook.NumberOfSheets; ? ? ? ? ? ? ? ? ? ? //如果該工作簿不存在表就創(chuàng)建新表 ? ? ? ? ? ? ? ? ? ? if (count < 1) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? //創(chuàng)建一個 sheet 表 ? ? ? ? ? ? ? ? ? ? ? ? m_sheet = m_workbook.CreateSheet(sheetName); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? m_sheets.Clear(); ? ? ? ? ? ? ? ? ? ? ? ? for (int i = 0; i < count; i++) ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? m_sheet = m_workbook.GetSheetAt(i); ? ? ? ? ? ? ? ? ? ? ? ? ? ? m_sheets.Add(m_sheet.SheetName); ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? if(m_sheets.Contains(sheetName)) ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? m_sheet = m_workbook.CreateSheet(sheetName+System.DateTime.Now.ToString("HH-mm-ss")+"副本"); ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? m_sheet = m_workbook.CreateSheet(sheetName); ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? return false; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? #region 打印設(shè)置 ? ? ? ? ? ? ? ? m_sheet.PrintSetup.Copies = 3; ? ? ? ? ? ? ? ? m_sheet.PrintSetup.Landscape = false; ? ? ? ? ? ? ? ? m_sheet.PrintSetup.Scale = 100; ? ? ? ? ? ? ? ? //紙張設(shè)置,A4紙 ? ? ? ? ? ? ? ? m_sheet.PrintSetup.PaperSize = 9; ? ? ? ? ? ? ? ? //打印網(wǎng)格線 ? ? ? ? ? ? ? ? m_sheet.IsPrintGridlines = true; ? ? ? ? ? ? ? ? #endregion ? ? ? ? ? ? ? ? ? #region 設(shè)置表頭 ? ? ? ? ? ? ? ? m_sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, dt.Columns.Count-1)); //合并單元格 ? ? ? ? ? ? ? ? IRow row0 = m_sheet.CreateRow(0); ?//創(chuàng)建一行 ? ? ? ? ? ? ? ? row0.Height = 50 * 20; ? ? ? ? ? ? ? ? ICell icelltop0 = row0.CreateCell(0); ?//創(chuàng)建一個單元格 ? ? ? ? ? ? ? ? IFont font = m_workbook.CreateFont(); ? ? ? ? ? ? ? ? font.FontHeightInPoints = 30; ? ? ? ? ? ? ? ? icelltop0.CellStyle = Getcellstyle(m_workbook, stylexls.頭); ? ? ? ? ? ? ? ? icelltop0.SetCellValue(headerName); ? ? ? ? ? ? ? ? #endregion ? ? ? ? ? ? ? ? ? #region 設(shè)置列 ? ? ? ? ? ? ? ? IRow rowH = m_sheet.CreateRow(1); ? ? ? ? ? ? ? ? cellstytle= Getcellstyle(m_workbook, stylexls.列標題); ? ? ? ? ? ? ? ? //設(shè)置列名 ? ? ? ? ? ? ? ? foreach (DataColumn col in dt.Columns) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? //創(chuàng)建單元格并設(shè)置單元格內(nèi)容 ? ? ? ? ? ? ? ? ? ? rowH.CreateCell(col.Ordinal).SetCellValue(col.Caption); ? ? ? ? ? ? ? ? ? ? ? //設(shè)置單元格格式 ? ? ? ? ? ? ? ? ? ? rowH.Cells[col.Ordinal].CellStyle = cellstytle; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? #endregion ? ? ? ? ? ? ? ? ? //寫入數(shù)據(jù) ? ? ? ? ? ? ? ? cellstytle = Getcellstyle(m_workbook, stylexls.默認); ? ? ? ? ? ? ? ? for (int i = 0; i < dt.Rows.Count; i++) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? //跳過前兩行,第一行為標題,第二行為列名? ? ? ? ? ? ? ? ? ? ? IRow row = m_sheet.CreateRow(i + 2); ? ? ? ? ? ? ? ? ? ? ICell cell = row.CreateCell(0); ? ? ? ? ? ? ? ? ? ? for (int j = 0; j < dt.Columns.Count; j++) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? cell = row.CreateCell(j); ? ? ? ? ? ? ? ? ? ? ? ? cell.SetCellValue(dt.Rows[i][j].ToString()); ? ? ? ? ? ? ? ? ? ? ? ? cell.CellStyle = cellstytle; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? //獲取當前列的寬度,然后對比本列的長度,取最大值 ? ? ? ? ? ? ? ? for (int columnNum = 0; columnNum <= dt.Rows.Count; columnNum++) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? int columnWidth = m_sheet.GetColumnWidth(columnNum) / 256; ? ? ? ? ? ? ? ? ? ? for (int rowNum = 1; rowNum <= m_sheet.LastRowNum; rowNum++) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? IRow currentRow; ? ? ? ? ? ? ? ? ? ? ? ? //當前行未被使用過 ? ? ? ? ? ? ? ? ? ? ? ? if (m_sheet.GetRow(rowNum) == null) ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? currentRow = m_sheet.CreateRow(rowNum); ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? currentRow = m_sheet.GetRow(rowNum); ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? if (currentRow.GetCell(columnNum) != null) ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ICell currentCell = currentRow.GetCell(columnNum); ? ? ? ? ? ? ? ? ? ? ? ? ? ? int length = Encoding.Default.GetBytes(currentCell.ToString()).Length; ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (columnWidth < length) ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? columnWidth = length + 10; ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? m_sheet.SetColumnWidth(columnNum, columnWidth * 256); ? ? ? ? ? ? ? ? ? ? //m_sheet.SetColumnWidth(0, 30 * 256); ? ? ? ? ? ? ? ? ? ? //m_sheet.SetColumnWidth(1, 10 * 256); ? ? ? ? ? ? ? ? ? ? //m_sheet.SetColumnWidth(2, 25 * 256); ? ? ? ? ? ? ? ? ? ? //m_sheet.SetColumnWidth(3, 25 * 256); ? ? ? ? ? ? ? ? ? ? //m_sheet.SetColumnWidth(4, 10 * 256); ? ? ? ? ? ? ? ? ? ? //m_sheet.SetColumnWidth(5, 10 * 256); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? //創(chuàng)建文件 ? ? ? ? ? ? ? ? FileStream file = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write); ? ? ? ? ? ? ? ? ? //創(chuàng)建一個 IO 流 ? ? ? ? ? ? ? ? MemoryStream ms = new MemoryStream(); ? ? ? ? ? ? ? ? ? //寫入到流 ? ? ? ? ? ? ? ? m_workbook.Write(ms); ? ? ? ? ? ? ? ? ? //轉(zhuǎn)換為字節(jié)數(shù)組 ? ? ? ? ? ? ? ? byte[] bytes = ms.ToArray(); ? ? ? ? ? ? ? ? ? file.Write(bytes, 0, bytes.Length); ? ? ? ? ? ? ? ? file.Flush(); ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? //釋放資源 ? ? ? ? ? ? ? ? bytes = null; ? ? ? ? ? ? ? ? ? ms.Close(); ? ? ? ? ? ? ? ? ms.Dispose(); ? ? ? ? ? ? ? ? ? file.Close(); ? ? ? ? ? ? ? ? file.Dispose(); ? ? ? ? ? ? ? ? ? m_workbook.Close(); ? ? ? ? ? ? ? ? m_sheet = null; ? ? ? ? ? ? ? ? m_workbook = null; ? ? ? ? ? ? ? ? m_cellStyle = null; ? ? ? ? ? ? ? ? m_datastyle = null; ? ? ? ? ? ? ? ? m_font = null; ? ? ? ? ? ? ? ? m_font12 = null; ? ? ? ? ? ? ? ? m_font20 = null; ? ? ? ? ? ? ? ? return true; ? ? ? ? ? ? } ? ? ? ? ? ? catch (Exception ex) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? return false; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? #region 定義單元格常用到樣式 ? ? ? ? static ICellStyle Getcellstyle(IWorkbook wb, stylexls str) ? ? ? ? { ? ? ? ? ? ? try ? ? ? ? ? ? { ? ? ? ? ? ? ? ? //CreateFont()不能頻繁創(chuàng)建,會導(dǎo)致打開EXCEL表的時候報如下錯誤: ? ? ? ? ? ? ? ? //此文件中的某些文本格式可能已經(jīng)更改,因為它已經(jīng)超出最多允許的字體數(shù)。 ? ? ? ? ? ? ? ? if (m_font20 == null) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? m_font20 = wb.CreateFont(); ? ? ? ? ? ? ? ? ? ? m_font20.FontHeightInPoints = 20; ? ? ? ? ? ? ? ? ? ? m_font20.FontName = "微軟雅黑"; ? ? ? ? ? ? ? ? ? ? m_font20.Boldweight = (short)FontBoldWeight.Bold; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? if (m_font12 == null) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? m_font12 = wb.CreateFont(); ? ? ? ? ? ? ? ? ? ? m_font12.FontHeightInPoints = 12; ? ? ? ? ? ? ? ? ? ? m_font12.FontName = "微軟雅黑"; ? ? ? ? ? ? ? ? ? ? m_font12.Boldweight = (short)FontBoldWeight.Bold; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? if (m_font == null) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? m_font = wb.CreateFont(); ? ? ? ? ? ? ? ? ? ? m_font.FontName = "微軟雅黑"; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? //if (m_cellStyle == null) ? ? ? ? ? ? ? ? //{ ? ? ? ? ? ? ? ? ? ? m_cellStyle = wb.CreateCellStyle(); ? ? ? ? ? ? ? ? ? ? //邊框 ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Medium; ? ? ? ? ? ? ? ? ? ? m_cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Medium; ? ? ? ? ? ? ? ? ? ? m_cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Medium; ? ? ? ? ? ? ? ? ? ? m_cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Medium; ? ? ? ? ? ? ? ? ? ? //邊框顏色 ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.BottomBorderColor = HSSFColor.OliveGreen.Blue.Index; ? ? ? ? ? ? ? ? ? ? m_cellStyle.TopBorderColor = HSSFColor.OliveGreen.Blue.Index; ? ? ? ? ? ? ? ? ? ? ? //背景圖形 ? ? ? ? ? ? ? ? ? ? //cellStyle.FillBackgroundColor = HSSFColor.OLIVE_GREEN.BLUE.index; ? ? ? ? ? ? ? ? ? ? ? //cellStyle.FillForegroundColor = HSSFColor.OLIVE_GREEN.BLUE.index; ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.FillForegroundColor = HSSFColor.White.Index; ? ? ? ? ? ? ? ? ? ? // cellStyle.FillPattern = FillPatternType.NO_FILL; ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.FillBackgroundColor = HSSFColor.Blue.Index; ? ? ? ? ? ? ? ? ? ? ? //水平對齊 ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; ? ? ? ? ? ? ? ? ? ? ? //垂直對齊 ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.VerticalAlignment = VerticalAlignment.Center; ? ? ? ? ? ? ? ? ? ? ? //自動換行 ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.WrapText = false; ? ? ? ? ? ? ? ? ? ? ? //縮進 ? ? ? ? ? ? ? ? ? ? //cellStyle.Indention = 0; ? ? ? ? ? ? ? ? //} ? ? ? ? ? ? ? ? //創(chuàng)建格式 ? ? ? ? ? ? ? ? if (m_datastyle == null) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? m_datastyle = wb.CreateDataFormat(); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? //上面基本都是設(shè)共公的設(shè)置 ? ? ? ? ? ? ? ? ? //下面列出了常用的字段類型 ? ? ? ? ? ? ? ? ? switch (str) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? case stylexls.頭: ? ? ? ? ? ? ? ? ? ? ? ? //cellStyle.FillPattern = FillPatternType.LEAST_DOTS; ? ? ? ? ? ? ? ? ? ? ? ? ? //設(shè)置為文本格式,也可以為 text,即 dataFormat.GetFormat("text"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.DataFormat = m_datastyle.GetFormat("@"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font20); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.列標題: ? ? ? ? ? ? ? ? ? ? ? ? // cellStyle.FillPattern = FillPatternType.LEAST_DOTS; ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.DataFormat = m_datastyle.GetFormat("@"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font12); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.時間: ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.DataFormat = m_datastyle.GetFormat("yyyy/mm/dd"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.數(shù)字: ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.錢: ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.DataFormat = m_datastyle.GetFormat("¥#,##0"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.url: ? ? ? ? ? ? ? ? ? ? ? ? //IFont fontcolorblue = wb.CreateFont(); ? ? ? ? ? ? ? ? ? ? ? ? //fontcolorblue.Color = HSSFColor.OliveGreen.Blue.Index; ? ? ? ? ? ? ? ? ? ? ? ? //fontcolorblue.IsItalic = true;//下劃線 ? ? ? ? ? ? ? ? ? ? ? ? ? fontcolorblue.Underline = 1; ? ? ? ? ? ? ? ? ? ? ? ? //fontcolorblue.FontName = "微軟雅黑"; ? ? ? ? ? ? ? ? ? ? ? ? //m_cellStyle.SetFont(fontcolorblue); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.百分比: ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00%"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.中文大寫: ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.DataFormat = m_datastyle.GetFormat("[DbNum2][$-804]0"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.科學(xué)計數(shù)法: ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00E+00"); ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case stylexls.默認: ? ? ? ? ? ? ? ? ? ? ? ? m_cellStyle.SetFont(m_font); ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? return m_cellStyle; ? ? ? ? ? ? } ? ? ? ? ? ? catch ? ? ? ? ? ? { ? ? ? ? ? ? ? ? return m_cellStyle; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? #endregion ? ? ? }
創(chuàng)建的表格的效果如圖所示:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
完成OSS.Http底層HttpClient重構(gòu)封裝 支持標準庫
OSS.Http項目對于.Net Standard標準庫的支持已經(jīng)遷移完畢,OSS開源系列兩個最底層的類庫已經(jīng)具備跨運行時支持的能力。本篇文章主要包含 1. HttpClient的介紹,2. 重構(gòu)的思路, 3. 容易遇到的問題。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02C#歸并排序的實現(xiàn)方法(遞歸,非遞歸,自然歸并)
C#歸并排序的實現(xiàn)方法(遞歸,非遞歸,自然歸并),需要的朋友可以參考一下2013-04-04C#實現(xiàn)改變DataGrid某一行和單元格顏色的方法
這篇文章主要介紹了C#實現(xiàn)改變DataGrid某一行和單元格顏色的方法,主要涉及DataGrid控件的添加與使用、數(shù)據(jù)源的綁定、單元格與行的獲取等操作。需要的朋友可以參考下2014-09-09C#實現(xiàn)動態(tài)顯示及動態(tài)移除圖片方法
這篇文章主要介紹了C#實現(xiàn)動態(tài)顯示及動態(tài)移除圖片方法,對于C#的初學(xué)者了解圖像操作有一定的幫助,需要的朋友可以參考下2014-07-07C#多線程學(xué)習(xí)之(三)生產(chǎn)者和消費者用法分析
這篇文章主要介紹了C#多線程學(xué)習(xí)之生產(chǎn)者和消費者用法,實例分析了C#中線程沖突的原理與資源分配的技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04