首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#,如何以编程方式设置 Excel 单元格样式

前言 C#开发,处理Excel文件是一项常见的任务。...和 VerticalAlignment 属性以编程方式对齐文本,如下所示: worksheet.Range["A1"].HorizontalAlignment = HorizontalAlignment.Center...RichText 控件 GcExcel 支持单元格应用富文本格式。富文本格式允许使用不同的颜色、字体、效果(粗体、下划线、双下划线、删除线、下标、上标)等单元格设置文本样式。...条件格式 工作表,Excel 允许用户对单个或一系列单元格创建条件格式规则,使单元格、行、列或整个工作表的数据自动应用不同的格式。...借助 GcExcel,可以使用工作簿的 Styles 集合以编程方式将这些快速样式应用于单元格或单元格区域,并将其作为值提供给 IRange.Style 属性,如下所示: worksheet.Range

21710

小说阅读器的设计和实现

总共会有四个层级: 交互层:处理左右滑动的事件以及正常的用户操作响应;(VC处理,view渲染层) 逻辑层:网络数据请求、数据格式转换和布局排版的计算; 数据层:对数据进行封装,主要包括业务数据、用户设置数据...相关问题 1、ViewController相关 UIPageViewController 在手动设置vc的时候,非常容易crash; 以loadingVC为例,展示vc后,会同步去加载数据; 当数据会回调后...,此时无法使用新的vc去替换; 所以总体的设计,vc赋值给UIPageViewController之后,就不应该修改; 延伸出来的翻页逻辑优化 UIPageVC使用过程(动画过程),不可调用这个方法...由于UIPageViewController的局限,较好的一种方案是开始滑动时就把数据源更新,最后如果用户取消翻页,则将数据源更新为原来的页面。...5、手势冲突 UIPageViewController是一个容器,上面会放置真正用于显示的VC,需要注意VC不能存在全屏的view,否则手势无法传到UIPageViewController,会出现无法左右滑动的情况

3.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

深度解析 Jetpack Compose 布局

本文会为您讲解由可组合项和修饰符提供支持的组合布局模型,并深入探究其背后的工作原理以及它们的功能,让您更好地了解所用布局和修饰符的工作方式,和应如何以何时构建自定义布局,从而实现满足确切应用需求的设计... measure 方法,修饰符可以修改约束或者实现自定义放置逻辑,就像布局一样。这表示您并不总是需要编写自定义布局,如果只想对单个项目执行操作,则可以改用修饰符。...最后,fillMaxSize 解析其尺寸并执行放置操作。 修饰符链的执行方式布局树的工作方式非常相像,差异在于每个修饰符只有一个子节点,也就是链的下一个元素。...BoxWithConstraints 的内容接收器作用域内排布,布局阶段确定的约束将通过该作用域公开为像素值或 DP 值。... Title 等其他组件可以观察滚动位置,而我们的观察方式会对性能产生影响。

2K30

阅读器多种翻页的设计与实现

UIPageViewControllerTransitionStyleScroll; 支持翻页的时候,对背面做一个自定义展示,需要打开self.pageVC.doubleSided = YES;; 初始化界面的时候和平移一样,但是使用过程再调用...这是因为pan手势切后台时会自动cancel,所以需要在手势处理增加对cancel状态的处理。 4、上下滑动 上下滑动同样没有系统库支持,需要手动实现。...效果分解: 1、当用户滑动的过程,视图要跟随手指的移动; 2、当用户往上滑然后松开时,视图要带有加速度的往上滑动;(附加特性:滑动过程中用户可以通过重复这个行为加速滑动) 3、视图滑动的过程...以下图为例,我们使得UIScrollView的contentSize为(view.width, 3*view.height),偏移contentOffsetY为view.height(初始状态相当于将窗口放置中间...A: 这是因为pan手势切后台时会自动cancel,所以需要在手势处理增加对cancel状态的处理; Q:如果初始化的时候,传进的VC.view不满一屏,该如何处理?

3.1K10

View Controller编程指南

UIViewController类自动处理View管理的大多数方面。 例如,UIKit自动释放不再需要的任何view相关的资源。...您可以使用大小类更改来改变布局视图的方式,如图所示。当水平尺寸类别是规则的,ViewController利用额外的水平空间来排列其内容。...UIKit期望您以规定的方式使用ViewController。 维护正确的ViewController关系可确保自动行为需要时传递给正确的ViewController。...图中,容器并排放置两个子视图。虽然它取决于容器接口,但子ViewController可能对容器和任何同级ViewController有最少的了解。...使用rootView作为容器可以为所有view提供一个共同的superview,这使得许多布局操作变得更简单。 许多自动布局约束需要共同的superview来正确布置view。

1.2K20

代码实验室--带你一步步理解使用 ConstraintLayout

约束系统概览 布局引擎使用每一个控件指定的约束确定他们布局的位置. 你可以手动指定约束, 也可以使用 Android Studio 布局编辑器推理自动指定....因为本节我们在学习手动创建约束, 点击 以关闭自动连接, 或者确保它之前已经被关闭. 我们开始之前, 确保布局已经有一个 ImageView 和一个 TextView....最终我们还可以使用左和右侧边约束锚定 ImageView 布局中间. 本节演示了如何用拖拽连接线的方式创建控件间约束的基础....选择一个不同的设备, Nexus 6P 或者 Nexus 9 以检查布局渲染正确. 你现在已经看到使用约束系统的整个系列: 创建手工约束, 使用自动连接约束, 还有使用推理引擎约束....自动连接和推理通过布局引擎断定如何为布局各个元素创建约束协助你. 然后你可以进一步按照你认为合适的方式自由地修改这些约束, 无论它们是由自动连接还是推理引擎生成的.

2.6K60

用AutoLayout实现分页滚动

一些应用中会应用到这一个特性,最典型的就是手机桌面的应用图标列表。这些界面往往每一页功能都比较独立,系统也提供了UIPageViewController来实现这种分页滚动的功能。...containerView.gravity = MyGravity_Vert_Fill | MyGravity_Horz_Fill; //设置线性布局的所有子视图均分和填充线性布局的高度和宽度。...流式布局用于一些子视图有规律排列的场景,就比如本例子的滚动分页的图标列表的能力。下面就是具体的实现代码。...解决的办法就是屏幕滚动时的相应回调处理方法修正这个contentOffset的值来解决这个问题。...比如我们可以屏幕切换的sizeclass变化的视图控制器的协议方法添加如下代码: - (void)traitCollectionDidChange:(nullable UITraitCollection

1.9K40

例说 Constraint Layout:初探

扁而浅的布局使其性能突出,同时又很符合我们的思考方式,撰写起来方便而优雅。如图三的谷歌 Demo 里的约束布局,谁能想到,这个完整又不失设计感的界面只有一层,完全没有嵌套! ? Figure 3....简单粗暴地说,就是你可以在任意位置,相对于任意东西,放置任意 View。这只是 CL 增加的能力很小的一部分,却增加了不少灵活性和可控性。而更难得的是,这是性能提升的同时做到的! 3....因此手机上 View 错位的问题的根本解决方案是,为 View 添加缺失的约束(除非本来就希望 View 放置 (0, 0) 位置)。...3.2.3 使用辅助工具自动创建约束 3.2.2 ,我们看到必须为控件添加足够多的约束来将其安放在想要的位置上。...打开 Autoconnect 功能 Autoconnect 功能打开后(默认为关闭状态),当控件被放置布局内时,编辑器就会自动创建 2 个或更多个必要的约束将控件相对于其父布局摆放。

2K10

用人工智能做设计,究竟能不能真的有效?

本文 [6] 跌倒模型的基础上,采用无梯度优化技术自动生成医院房间布局的设计方案,目的是能够通过改进房间布局设计的方式降低患者跌倒的风险(见图 1)。...空间分配和布局规划,人们关注的是消耗空间的物体和资源的物理位置安排。除此之外,计算机布局规划也常应用于室内设计的物体放置问题。...最后,满足约束条件的情况下,算法成功地将物体放置房间里(图 4c)。图 5 描述了回溯算法的整体流程。 ? 图 4. 物品放置程序。(a) 先前放置的物体妨碍后续物体的可行放置。...(b)回溯改变先前放置的对象的位置。(c) 所有物体都以满足约束条件的方式放置。 ? 图 5....除了上一节讨论的预定义的布局模板外,自动生成视觉文本布局的过程还应该考虑到基于内容的图像特征(显著性图)。通过结合高级模板约束和低级图像特征,作者定义了一个计算框架,如图 15 所示。

98030

TensorFlow 分布式之论文篇 TensorFlow : Large-Scale Machine Learning on Heterogeneous Distributed Syst

对于具有多个可用设备的节点,布局算法使用贪婪启发式算法,看看将节点放置每个可能设备上对节点完成时间会造成怎样的影响。...决定设备如何放置之后,将为每个设备创建一个子图。发送/接收节点对跨工作进程通信时候使用远程通信机制( TCP 或 RDMA)来跨机器边界移动数据。...在这些约束条件的约束范围内,布局算法(placement algorithm)负责完成节点到设备的分配,以提供快速的计算执行,并满足设备自身施加的各种约束,例如,限制设备上执行其计算图节点子集所需的内存总量...支持此类约束要求更改前面描述的布局算法。...高层级的编程结构, if-conditionals 和 while-loops 则可以使用这些控制流操作符来轻松地编译成数据流计算图。

3.4K20

【Flutter】Flutter 布局组件 ( 布局组件简介 | Row 组件 | Column 组件 | SizedBox 组件 | ClipOval 组件 )

Row 组件类似 , Wrap 组件可以换行 ; Flow : 不常用 ; ParentDataWidget : Positioned : 用于固定组件位置的组件 ; Flexible : 用于约束组件父容器展开大小的组件...verticalDirection, textBaseline: textBaseline, ); } Row 和 Column 组件使用时 , 设置其对应的 children: [] 即可 , 括号...width 和 height 字段设置组件的宽高属性 , child 字段设置要设置大小的组件 ; // 使用 SizedBox 组件约束布局大小 SizedBox( width: 宽度像素值,...decoration: BoxDecoration(color: Colors.white), // 设置 child 子组件居中方式, 居中放置...Row 组件 , 横向布局放置了两个组件 , 第一个 Image 组件显示原始图片 , 第二个组件是经过 SizedBox 组件约束大小 , 和 ClipOval 组件裁剪成圆形后的效果 ; 六

2.3K00

约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )

( 被约束的边的具体位置 ) 相对定位简介 相对定位 : 1.地位 : 相对定位 是 约束布局 的 一种 创建布局的 最基础 的 组成部分 ; 2.作用 : 约束布局允许你去放置一个组件 , 并且与其它组件相关联...; 3.约束关键字 : 你可以 水平方向 和 垂直方向 约束一个组件 ; 下面是 可组合的约束类型 ; ① 水平方向 : Left , Right , Start , End ; ② 垂直方向...: Left , Right 可以构成 四种 相位定位属性组合 ; 2.两个约束关系组件 : ① 被约束组件 : 将 要设置约束属性的组件 称为 被约束组件 ; ② 目标组件 : 将 已经放置好位置的组件...: 两条边有约束联系 , 但是 不能凭借单一的约束关系确定其具体的放置方位 ; 3.约束示例 : 使用 layout_constraintLeft_toLeftOf 属性添加了约束 , 被约束组件左侧边...与 目标组件左侧边 的方位关系 , 前者是在后者的 左边 , 右边 , 还是 重叠 ; 还要看其它属性 : ① android:layout_marginLeft : 左侧的约束 ; ② layout_constraintHorizontal_bias

74820

setNeedsLayout和layoutIfNeeded看我就懂!

请记住,此方法强制立即布局并显示更新。您可能会想知道为什么我们进行约束更改之前呢。苹果认为这是一个最佳做法,以确保任何以前的更新等待更新周期的完成,所以我已经添加了它。...当这样的约束被更新时,它会自动执行相当于setNeedsLayout的操作,因此在下一个更新周期内不需要更新视图。我们可以没有更多的代码,你会看到更新,但它不会有动画效果。...但在我们的例子,添加了2秒的动画块UIView.animate,该块内,我们通过layoutIfNeeded方法强制立即布局。...由于此布局同步发生,因此动画块捕获来自约束更改的帧移动,因此如果您现在运行应用程序,则可以看到红色视图2秒钟内如何变大变小。 效果如下: ?...相反,setNeedsLayout方法返回,视图只是列表,以在下一个更新周期中进行更新。净效果是动画块不会发生动画,因为该块的视图没有更改。 效果如下: ?

2.6K90

ConstraintLayout_1:可视化拖拽布局

当你选中任意一个控件的时候,右侧的Properties区域就会出现很多的属性选项,如下图所示。 image.png 在这里我们就可以设置当前控件的所有属性,文本内容、颜色、点击事件等等。...首先需要说明,ConstraintLayout是有match parent的,只不过用的比较少,因为ConstraintLayout的一大特点就是为了解决布局嵌套,既然没有了布局嵌套,那么match...自动添加约束 不过如果界面的内容变得复杂起来,给每个控件一个个地添加约束也是一件很繁琐的事情。为此,ConstraintLayout中支持自动添加约束的功能,可以极大程度上简化那些繁琐的操作。...自动添加约束方式主要有两种,一种叫Autoconnect,一种叫Inference,我们先来看第一种。...Inference也是用于自动添加约束的,但它比Autoconnect的功能要更为强大,因为AutoConnect只能给当前操作的控件自动添加约束,而Inference会给当前界面的所有元素自动添加约束

1.3K20

深度解析ug1292(7)

第2步:违例路径的各个逻辑单元是否存在位置约束? 通常,设计不可避免地会有一些物理约束管脚分配。除此之外,还可能会有其他位置约束通过create_macro或Pblock创建的位置约束。...-by_slr选项只能在place_design或route_design生成的dcp中使用,这也不难理解,毕竟在布局阶段工具才会把设计单元向相应的SLR内放置; 每个die的设计可以看作一个顶层,因此...,要对每个顶层指定一个die,以确保相应的设计单元被正确放置目标die内。...这可通过属性USER_SLR_ASSIGNMENT实现(Vivado 2018.2开始支持); 如果上述属性未能正确工作,可直接画Pblock进行约束布局或布线之后如果仍有时序违例,可尝试使用phys_opt_design...但这两个选项不能与-directive同时使用,所以如果是工程模式下,可将其放置Hook文件(Tcl.pre或Tcl.post)。

1.2K10

Android新特性介绍,ConstraintLayout完全解析

当你选中任意一个控件的时候,右侧的Properties区域就会出现很多的属性选项,如下图所示。 ? 在这里我们就可以设置当前控件的所有属性,文本内容、颜色、点击事件等等。...首先需要说明,ConstraintLayout是有match parent的,只不过用的比较少,因为ConstraintLayout的一大特点就是为了解决布局嵌套,既然没有了布局嵌套,那么match...自动添加约束方式主要有两种,一种叫Autoconnect,一种叫Inference,我们先来看第一种。...然后我们在这个Button的下方再放置一个Button,效果如下。 ? 可以看到,只需要将Button拖放到界面上,Autoconnect会判断我们的意图,并自动给控件添加约束。...Inference也是用于自动添加约束的,但它比Autoconnect的功能要更为强大,因为AutoConnect只能给当前操作的控件自动添加约束,而Inference会给当前界面的所有元素自动添加约束

1.8K70

【Flutter】Image 组件 ( Image 组件简介 | Image 构造函数 | Image.network 构造函数 | Image.asset 构造函数 )

width 和 height 参数 ; ② 指定 Image 组件放置严格约束布局 ; 如果以上都没有设置 , 那么 Image 组件就是已加载的图片的真实大小 , 这会使界面布局非常难看 ;..., 需要符合以下任意一个要求 : ① 指定 width 和 height 参数 ; ② 指定 Image 组件放置严格约束布局 ; 如果以上都没有设置 , 那么 Image 组件就是已加载的图片的真实大小...Image 组件放置严格约束布局 ; 如果以上都没有设置 , 那么 Image 组件就是已加载的图片的真实大小 , 这会使界面布局非常难看 ; Android 设备 , 需要使用 SD 卡权限...name , repeat 参数必须不能为空 ; 图像尺寸说明 : 如果严格约束图片的宽高 , 需要符合以下任意一个要求 : ① 指定 width 和 height 参数 ; ② 指定 Image 组件放置严格约束布局...: 如果严格约束图片的宽高 , 需要符合以下任意一个要求 : ① 指定 width 和 height 参数 ; ② 指定 Image 组件放置严格约束布局 ; 如果以上都没有设置 , 那么 Image

1.5K30

Flutter构建布局

然后本指南回过头来解释Flutter的布局方法,并说明如何在屏幕上放置一个小部件。 讨论如何水平和垂直放置小部件之后,会介绍一些最常见的布局小部件。...在这个例子,每个文本小部件放置容器以添加边距。 整个行也被放置容器以在行的周围添加填充。 本例的其余UI由属性控制。 使用其color属性设置图标的颜色。...Flutter,只需几个步骤即可在屏幕上放置文本,图标或图像。 1.选择一个布局小部件来保存该对象。...根据您想要对齐或约束可见窗口小部件的方式,从各种布局窗口小部件中进行选择,因为这些特性通常会传递到包含的窗口小部件。 这个例子使用Center,它将内容水平和垂直居中。...subTitle, ratings, iconList, ], ), ); //... } } 左列放置容器约束其宽度

43K10

带你领略 ConstraintLayout 1.1 的新功能前言带你领略 ConstraintLayout 1.1 的新功能

1.1 版本的新特性 百分比 约束布局 1.0 版本,需要使用两条引导线才能让视图根据百分比来占据屏幕。...您可以将屏障放置于几个元素的开始,顶部,末尾或底部。您可以将其视为制作虚拟组的一种方式 ,因为它不会将此组添加到视图层次结构。...profile.visibility = GONE profile.visibility = VISIBLE 圆形约束 约束布局,大多数约束由屏幕尺寸指定——水平和垂直。...约束布局 1.1 版本,有一个新的类型约束 constraintCircle,它允许您指定沿着一个圆形进行约束。您不必提供水平和垂直边距,而是指定圆的角度和半径。...这些优化点作为一个单独的通道运行,并尝试减少布局视图所需的约束数量。 总的来说,它们是通过布局寻找常量并简化它们来运作的。

1.7K20
领券