C# Excel 单元格内部某段字节设置格式

示例一

Dim a, b As Integer
a=len(text1.text)
b=len(text2.text)
xlSheet.Range(Cells(1, 2)).Characters(5, a).Font.Underline = xlUnderlineStyleSingle
xlSheet.Range(Cells(1, 2)).Characters(5+a+5, b).Font.Underline = xlUnderlineStyleSingle

 

实例二

        /// <summary>
        /// 生成申请书清单
        /// </summary>
        /// <param name="dataSet"></param>
        /// <param name="filePath"></param>
        public void exportExcel(string filePath)
        {
            DataSet dataSet = new DataSet();
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("指南编号", typeof(string));
            dataTable.Columns.Add("课题名称", typeof(string));
            dataTable.Columns.Add("申请人", typeof(string));
            dataTable.Columns.Add("申请经费(万元)", typeof(string));
            dataTable.Columns.Add("密级", typeof(string));
            dataTable.Columns.Add("课题组联系方式", typeof(string));
            dataTable.Columns.Add("Email", typeof(string));
            DataRow dr = dataTable.NewRow();
            dr["指南编号"] = this.ptcGuideNum.Text;
            dr["课题名称"] = this.ptcTopicName.Text;
            dr["申请人"] = this.ptcApplicant.Text;
            dr["申请经费(万元)"] = this.ptcDirectMoney28.Text;
            dr["密级"] = this.ptcFragmentLevel.Text;
            dr["课题组联系方式"] = "联系电话:" + this.telephonePtc.Text + "\n手机:" + this.userMobilePtc.Text;
            dr["Email"] = this.ptcEmail.Text;
            dataTable.Rows.Add(dr);
            dataSet.Tables.Add(dataTable);
            if (dataSet.Tables.Count == 0)
            {

                throw new Exception("DataSet中没有任何可导出的表。");
            }
            //创建application对象
            Microsoft.Office.Interop.Excel.Application excelApplication = new Microsoft.Office.Interop.Excel.Application();
            excelApplication.DisplayAlerts = false;
            object m_objOpt = System.Reflection.Missing.Value;
            //打开excel对象
            Microsoft.Office.Interop.Excel.Workbook workbook = excelApplication.Workbooks.Open(filePath, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);
            //获取excel的sheet集
            Microsoft.Office.Interop.Excel.Sheets m_objSheets = null;
            m_objSheets = (Microsoft.Office.Interop.Excel.Sheets)workbook.Worksheets;
            //Microsoft.Office.Interop.Excel.Workbook workbook = excelApplication.Workbooks.Add(Missing.Value);
            int i = 0;
            foreach (DataTable dt in dataSet.Tables)
            {
                i++;
                //Microsoft.Office.Interop.Excel.Worksheet lastWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets.get_Item(workbook.Worksheets.Count);
                //Microsoft.Office.Interop.Excel.Worksheet lastWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)(m_objSheets.get_Item(i));
                Microsoft.Office.Interop.Excel.Worksheet newSheet = (Microsoft.Office.Interop.Excel.Worksheet)(m_objSheets.get_Item(1));
                //lastWorksheet.Name = dt.TableName;
                //表头的导出
                //for (int col = 0; col < dt.Columns.Count; col++)
                //{
                //    newSheet.Cells[1, col + 1] = dt.Columns[col].ColumnName;
                //}
                Microsoft.Office.Interop.Excel.Range range1;

                string unitname = "  " + this.ptcRelyingUnit.Text + "  ";
                //列的导出
                newSheet.Cells[1, 1] = unitname + "242计划申报课题清单";
                range1 = newSheet.get_Range("A1");
                range1.get_Characters(0, unitname.Length).Font.Underline = true;
                newSheet.Cells[2, 1] = "(" + this.ptcApplicationDateYear.Text + "年" + this.ptcApplicationDateMonth.Text + "月" + this.ptcApplicationDateDay.Text + "日)";
                for (int row = 0; row < dt.Rows.Count; row++)
                {
                    for (int col = 0; col < dt.Columns.Count; col++)
                    {
                        newSheet.Cells[row + 5, col + 1] = dt.Rows[row][col].ToString();
                    }
                }
            }
            try
            {
                workbook.Close(true, filePath, System.Reflection.Missing.Value);
            }
            catch (Exception e)
            {
                throw e;
            }
            excelApplication.Quit();
        }

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 可以使用 Microsoft.Office.Interop.Excel 库来对 Excel 单元格格式、行高、列宽、单元格边框线以及冻结设置进行操作。 下面是一些常见的操作示例: 1. 设置单元格的值和格式: ```csharp using Excel = Microsoft.Office.Interop.Excel; Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open("文件路径"); Excel.Worksheet worksheet = workbook.Sheets[1]; Excel.Range range = worksheet.Cells[1, 1]; range.Value2 = "这是一个字符串"; range.NumberFormat = "0.00"; // 设置单元格格式为数字,保留两位小数 workbook.Save(); workbook.Close(); excel.Quit(); ``` 2. 设置行高和列宽: ```csharp using Excel = Microsoft.Office.Interop.Excel; Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open("文件路径"); Excel.Worksheet worksheet = workbook.Sheets[1]; Excel.Range range = worksheet.Cells[1, 1]; range.EntireRow.RowHeight = 30; // 设置第一行的行高为30 range.EntireColumn.ColumnWidth = 20; // 设置第一列的列宽为20 workbook.Save(); workbook.Close(); excel.Quit(); ``` 3. 设置单元格边框线: ```csharp using Excel = Microsoft.Office.Interop.Excel; Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open("文件路径"); Excel.Worksheet worksheet = workbook.Sheets[1]; Excel.Range range = worksheet.Cells[1, 1]; Excel.Borders borders = range.Borders; borders.LineStyle = Excel.XlLineStyle.xlContinuous; // 设置边框线样式为实线 borders.Weight = Excel.XlBorderWeight.xlThin; // 设置边框线粗细 workbook.Save(); workbook.Close(); excel.Quit(); ``` 4. 冻结设置: ```csharp using Excel = Microsoft.Office.Interop.Excel; Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open("文件路径"); Excel.Worksheet worksheet = workbook.Sheets[1]; worksheet.Application.ActiveWindow.SplitRow = 1; // 冻结第一行 worksheet.Application.ActiveWindow.SplitColumn = 0; // 不冻结列 workbook.Save(); workbook.Close(); excel.Quit(); ``` 注意:在使用完毕后,需要关闭 Excel 进程,否则可能会导致内存泄漏问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值