为什么导出EXCEL 设置列宽range.ColumnWidth = 80没有用?r.RowHeight = 100却可以

hei5432 2021-01-15 10:25:20
range设置行相关隐藏生效,设置列隐藏不生效,设置列宽度不行,设置行宽度却可以
...全文
100 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
range.NumberFormatLocal = "@"; //设置单元格格式为文本 range = (Range)worksheet.get_Range("A1", "E1"); //获取Excel多个单元格区域:本例做为Excel表头 range.Merge(0); //单元格合并动作 worksheet.Cells[1, 1] = "Excel单元格赋值"; //Excel单元格赋值 range.Font.Size = 15; //设置字体大小 range.Font.Underline=true; //设置字体是否有下划线 range.Font.Name="黑体"; 设置字体的种类 range.HorizontalAlignment=XlHAlign.xlHAlignCenter; //设置字体在单元格内的对其方式 range.ColumnWidth=15; //设置单元格的宽度 range.Cells.Interior.Color=System.Drawing.Color.FromArgb(255,204,153).ToArgb(); //设置单元格的背景色 range.Borders.LineStyle=1; //设置单元格边框的粗细 range.BorderAround(XlLineStyle.xlContinuous,XlBorderWeight.xlThick,XlColorIndex.xlColorIndexAutomatic,System.Drawing.Color.Black.ToArgb()); //给单元格加边框 range.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlLineStyleNone; //设置单元格上边框为无边框 range.EntireColumn.AutoFit(); //自动调整列宽 Range.HorizontalAlignment= xlCenter; // 文本水平居中方式 Range.VerticalAlignment= xlCenter //文本垂直居中方式 Range.WrapText=true; //文本自动换行 Range.Interior.ColorIndex=39; //填充颜色为淡紫色 Range.Font.Color=clBlue; //字体颜色 xlsApp.DisplayAlerts=false; //保存Excel的时候,不弹出是否保存的窗口直接进行保存 ==================================================================== using System; using System.Collections.Generic; using System.Text; using System.Reflection; using System.Runtime.InteropServices; using Microsoft.Office.Interop.Excel; using ExcelApplication = Microsoft.Office.Interop.Excel.ApplicationClass; using System.IO; namespace ExcalDemo { public class ExcelFiles { public void CreateExcelFiles() { ExcelApplication excel = new ExcelApplication(); try { excel.Visible = false;// 不显示 Excel 文件,如果为 true 则显示 Excel 文件 excel.Workbooks.Add(Missing.Value);// 添加工作簿 Worksheet sheet = (Worksheet)excel.ActiveSheet;// 获取当前工作表 Range range = null;// 创建一个空的单元格对象 range = sheet.get_Range("A1", Missing.Value);// 获取单个单元格 range.RowHeight = 20; // 设置行高 range.ColumnWidth = 20; // 设置列宽 range.Borders.LineStyle = 1; // 设置单元格边框 range.Font.Bold = true; // 加粗字体 range.Font.Size = 20; // 设置字体大小 range.Font.ColorIndex = 5; // 设置字体颜色 range.Interior.ColorIndex = 6; // 设置单元格背景色 range.HorizontalAlignment = XlHAlign.xlHAlignCenter;// 设置单元格水平居中 range.VerticalAlignment = XlVAlign.xlVAlignCenter;// 设置单元格垂直居中 range.Value2 = "设置行高和列宽";// 设置单元格的值 range = sheet.get_Range("B2", "D4");// 获取多个单元格 range.Merge(Missing.Value); // 合并单元格 range.Columns.AutoFit(); // 设置列宽为自动适应 range.NumberFormatLocal = "#,##0.00";// 设置单元格格式为货币格式 // 设置单元格左边框加粗 range.Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick; // 设置单元格右边框加粗 range.Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick; range.Value2 = "合并单元格"; // 页面设置 sheet.PageSetup.PaperSize = XlPaperSize.xlPaperA4; // 设置页面大小为A4 sheet.PageSetup.Orientation = XlPageOrientation.xlPortrait; // 设置垂直版面 sheet.PageSetup.HeaderMargin = 0.0; // 设置页眉边距 sheet.PageSetup.FooterMargin = 0.0; // 设置页脚边距 sheet.PageSetup.LeftMargin = excel.InchesToPoints(0.354330708661417); // 设置左边距 sheet.PageSetup.RightMargin = excel.InchesToPoints(0.354330708661417);// 设置右边距 sheet.PageSetup.TopMargin = excel.InchesToPoints(0.393700787401575); // 设置上边距 sheet.PageSetup.BottomMargin = excel.InchesToPoints(0.393700787401575);// 设置下边距 sheet.PageSetup.CenterHorizontally = true; // 设置水平居中 // 打印文件 sheet.PrintOut(Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); // 保存文件到程序运行目录下 sheet.SaveAs(Path.Combine(System.Windows.Forms.Application.StartupPath,"demo.xls"), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); excel.ActiveWorkbook.Close(false, null, null); // 关闭 Excel 文件且不保存 } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { excel.Quit(); // 退出 Excel excel = null; // 将 Excel 实例设置为空 } } } }
function ceshi_Excel %利用MATLAB生成Excel文档 % ceshi_Excel % % Copyright 2009 - 2010 xiezhh. % $Revision: 1.0.0.0 $ $Date: 2009/12/14 20:40:00 $ % 设定测试Excel文件名和路径 filespec_user = [pwd '\测试.xls']; % 判断Excel是否已经打开,若已打开,就在打开的Excel中进行操作,否则就打开Excel try % 若Excel服务器已经打开,返回其句柄Excel Excel = actxGetRunningServer('Excel.Application'); catch % 创建一个Microsoft Excel服务器,返回句柄Excel Excel = actxserver('Excel.Application'); end; % 设置Excel服务器为可见状态 Excel.Visible = 1; % set(Excel, 'Visible', 1); % 若测试文件存在,打开该测试文件,否则,新建一个工作簿,并保存,文件名为测试.Excel if exist(filespec_user,'file'); Workbook = Excel.Workbooks.Open(filespec_user); % Workbook = invoke(Excel.Workbooks,'Open',filespec_user); else Workbook = Excel.Workbooks.Add; % Workbook = invoke(Excel.Workbooks, 'Add'); Workbook.SaveAs(filespec_user); end % 返回当前工作表句柄 Sheets = Excel.ActiveWorkbook.Sheets; % Sheets = Workbook.Sheets; Sheet1 = Sheets.Item(1); % 返回第1个表格句柄 Sheet1.Activate; % 激活第1个表格 % 页面设置 Sheet1.PageSetup.TopMargin = 60; % 上边距60磅 Sheet1.PageSetup.BottomMargin = 45; % 下边距45磅 Sheet1.PageSetup.LeftMargin = 45; % 左边距45磅 Sheet1.PageSetup.RightMargin = 45; % 右边距45磅 % 设置行高和列宽 % 定义行高向量RowHeight RowHeight = [26,22,15,29,37,29,29,25,25,36,280,31,40,29,15,24]'; % 设置Range对象(从A1到A16)的行高 Sheet1.Range('A1:A16').RowHeight = RowHeight; % 设置Range对象(从A1到H1)的列宽 Sheet1.Range('A1:H1').ColumnWidth = [9,15,9,9,9,9,9,9]; % 合并单元格 Sheet1.Range('A1:H1').MergeCells = 1; Sheet1.Range('A2:H2').MergeCells = 1; Sheet1.Range('A8:A9').MergeCells = 1; Sheet1.Range('B8:D8').MergeCells = 1; Sheet1.Range('E8:H8').MergeCells = 1; Sheet1.Range('B9:D9').MergeCells = 1; Sheet1.Range('E9:H9').MergeCells = 1; Sheet1.Range('A10:H10').MergeCells = 1; Sheet1.Range('A11:H11').MergeCells = 1; Sheet1.Range('A12:H12').MergeCells = 1; Sheet1.Range('A13:H13').MergeCells = 1; Sheet1.Range('A14:H14').MergeCells = 1; Sheet1.Range('D16:H16').MergeCells = 1; % 设置单元格的边框 Sheet1.Range('A4:H14').Borders.Weight = 3; Sheet1.Range('A10:H12').Borders.Item(3).Linestyle = 0; Sheet1.Range('A10:H12').Borders.Item(4).Linestyle = 0; Sheet1.Range('A13:H13').Borders.Item(4).Linestyle = 0; Sheet1.Range('A14:H14').Borders.Item(3).Linestyle = 0; % 设置单元格对齐方式 Sheet1.Range('A1:H9').HorizontalAlignment = 3; Sheet1.Range('A4:A9').HorizontalAlignment = 6; Sheet1.Range('C4:C7').HorizontalAlignment = 6; Sheet1.Range('E4:E7').HorizontalAlignment = 6; Sheet1.Range('G4:G7').HorizontalAlignment = 6; Sheet1.Range('A10:H10').HorizontalAlignment = 6; Sheet1.Range('A11:H11').HorizontalAlignment = 6; % -4130 Sheet1.Range('A11:H11').VerticalAlignment = 1; Sheet1.Range('A12:H12').HorizontalAlignment = 4; Sheet1.Range('A13:H13').VerticalAlignment = 1; Sheet1.Range('A14:H14').HorizontalAlignment = 4; Sheet1.Range('D16:H16').HorizontalAlignment = 4; % 写入单元格内容 Sheet1.Range('A1').Value = '试 卷 分 析'; Sheet1.Range('A2').Value = '( 2009 — 2010 学年 第一学期)'; Sheet1.Range('A4:H4').Value = {'课程名称','','课程号',... '','任课教师学院','','任课教师',''}; Sheet1.Range('A5:H5').Value = {'授课班级','','考试日期',... '','应考人数','','实考人数',''}; Sheet1.Range('A6:H6').Value = {'出卷方式','','阅卷方式',... '','选用试卷A/B','','考试时间',''}; Sheet1.Range('A7:H7').Value = {'考试方式','','平均分',... '','不及格人数','','及格率',''}; Sheet1.Range('A8').Value = '成绩分布'; Sheet1.Range('B8').Value = '90分以上 人占 %'; Sheet1.Range('E8').Value = '80---89分 人占 %'; Sheet1.Range('B9').Value = '70---79分 人占 %'; Sheet1.Range('E9').Value = '60---69分 人占 %'; Sheet1.Range('A10').Value = ['试卷分析(含是否符合教学大纲、难度、知识覆'... '盖面、班级分数分布分析、学生答题存在的共性问题与知识掌握情况、教学中'... '存在的问题及改进措施等内容)']; Sheet1.Range('A12').Value = '签字 : 年 月 日'; Sheet1.Range('A13').Value = '教研室审阅意见:'; Sheet1.Range('A14').Value = '教研室主任(签字): 年 月 日'; Sheet1.Range('D16').Value = '主管院长签字: 年 月 日'; % 设置字号 Sheet1.Range('A4:H12').Font.size = 10.5; % 设置单元格A4至H12的字号为10.5 Sheet1.Range('A1').Font.size = 16; % 设置单元格A1的字号为16 Sheet1.Range('A1').Font.bold = 2; % 单元格A1的字体加粗 % 插入图片,如果当前工作表中有图形存在,通过循环将图形全部删除 Shapes = Sheet1.Shapes; % 返回第1个工作表的Shapes接口的句柄 if Shapes.Count ~= 0; for i = 1 : Shapes.Count; Shapes.Item(1).Delete; % 删除第1个Shape对象 end; end; % 产生均值为75,标准差为4的正态分布随机数,画直方图,并设置图形属性 zft = figure('units','normalized','position',... [0.280469 0.553385 0.428906 0.251302],'visible','off'); % 新建图形窗口,设为不可见 set(gca,'position',[0.1 0.2 0.85 0.75]); % 设置坐标系的位置和大小 data = normrnd(75,4,1000,1); % 产生均值为75,标准差为4的正态分布随机数 hist(data); % 绘制正态分布随机数的频数直方图 grid on; % 添加参考网格 xlabel('考试成绩'); % 为X轴加标签 ylabel('人数'); % 为Y轴加标签 hgexport(zft, '-clipboard'); % 将直方图复制到剪贴板 % 选中工作表Sheet1的A11单元格,插入由MATLAB命令作出的直方图 Sheet1.Range('A11').Select; Sheet1.Paste % Sheet1.PasteSpecial; delete(zft); % 删除图形句柄 Workbook.Save % 保存文档

62,263

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧