系列
文档模型能够使用指定的模式或工作表中已经存在的数据自动构造一系列数据。自动填充功能可以根据开始值和步骤值继续一系列数字、日期、时间段或数字和文本组合。自动填充支持以下系列:线性,增长,日期和自动填充。
要使用自动填充功能,首先需要创建一个CellSelection用于您想要填充的单元格范围。注意,范围应该包括系列的起始值。的CellSelection提供以下串联施工方法:
FillDataSeriesLinear:计算每个单元格在初始值之后的值,通过添加特定的一步值转换为前一个单元格的值。
FillDataSeriesLinearTrend:使用线性拟合算法计算序列的值,为初始值找到最佳直线。
FillDataSeriesExponential:计算每个单元格在初始值之后的值,方法是将前一个单元格的值乘以特定的值一步价值。
FillDataSeriesExponentialTrend:使用指数拟合算法计算级数的值,为初始值找到最佳指数曲线。
FillDataSeriesDate:使用特定的参数增量填充日期值一步值,该值可以表示天数、工作日、月或年。
FillDataSeriesAuto:自动延续数字、数字和文本组合、日期或时间段的复杂模式。通常,它使用线性拟合算法来寻找级数的下一个值。
本文的其余部分包含上述每种方法的详细信息和示例。
线性系列
的FillDataSeriesLinear ()方法CellSelection类构造线性序列的数据。该方法有两个必需参数和一个可选参数。第一个参数为typeCellOrientation指示级数是水平方向还是垂直方向。第二个参数确定将添加到每个单元格以继续该系列的步骤值。可选参数用于在某个值处停止系列。如果设置了此参数,并且序列达到指定的停止值,则所有后续单元格将为空。
示例1创建具有该值的新工作表1在细胞A1而且3.在B1.的FillDataSeriesLinear ()方法为单元格区域调用A1: F1.因此,价值观1,3,5,7,9,11出现在范围内A1: F1.
例1:填充线性级数
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0,0).SetValue (1);工作表。细胞[0,1].SetValue (3);CellRange range = new CellRange(0,0,0,5);(范围)worksheet.Cells .FillDataSeriesLinear (CellOrientation。水平,2);
图1演示了的结果示例1.
图1:线性级数
线性趋势级数
的FillDataSeriesLinearTrend ()方法使用线性拟合算法生成序列,用于为初始值模式寻找最佳直线。该方法需要一个类型的参数CellOrientation这决定了级数是水平方向还是垂直方向。
示例2演示如何使用FillDataSeriesLinearTrend ()继续级数值1、5从range开始A1: B1结果就是级数1,5,9,13,17,21在范围内A1: F1.
例2:填充线性趋势序列
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0,0).SetValue (1);工作表。细胞[0,1].SetValue (8);工作表。细胞(0,2).SetValue (3);工作表。细胞[0,3].SetValue (10); worksheet.Cells[0, 4].SetValue(5); CellRange range = new CellRange(0, 0, 0, 9); worksheet.Cells[range].FillDataSeriesLinearTrend(CellOrientation.Horizontal);
图2演示了的结果示例2.
图2:线性趋势序列
图3说明初始值和结果之间的差异。注意,结果值构造了初始数据的最佳拟合线。
图3:初始值与线性趋势的差异
指数系列
的FillDataSeriesExponential ()方法通过将前一个单元格的内容乘以指定的步长值来计算初始值之后的每个单元格的值。与FillDataSeriesLinear()一样,该方法有两个必需参数和一个可选参数。第一个是典型的CellOrientation用于确定序列的方向是水平的还是垂直的。第二个参数是一个double值,表示序列中每两个连续值之间的步长。可选参数指定系列的停止值,用于在达到某个值时停止系列。
示例3控件的用法FillDataSeriesExponential ()方法以初始值继续序列1和3出现在细胞中A1和B1分别。方法调用后,区域A1: F1包含以下值:1、4、16、64、256和1024.
例3:填充指数级数
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0,0).SetValue (1);工作表。细胞[0,1].SetValue (3);CellRange range = new CellRange(0,0,0,5);(范围)worksheet.Cells .FillDataSeriesExponential (CellOrientation。水平,4);
图4演示了的结果示例3.
图4:指数级数
指数趋势级数
的FillDataSeriesExponentialTrend ()方法使用指数拟合算法计算级数的值,为初始值找到最佳指数曲线。它需要一个类型参数CellOrientation指示级数是水平的还是垂直的。
示例4控件的用法FillDataSeriesLinearTrend ()方法以初始值继续序列1和5出现在细胞中A1和B1分别。线性趋势应用后,范围A1: F1保存以下值:1,5,25,125,625和3125.
例4:指数趋势系列
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0,0).SetValue (1);工作表。细胞[0,1].SetValue (5);工作表。细胞(0,2).SetValue (2);工作表。细胞[0,3].SetValue (9); CellRange range = new CellRange(0, 0, 0, 5); worksheet.Cells[range].FillDataSeriesExponentialTrend(CellOrientation.Horizontal);
图5演示了的结果示例4.
图5:指数趋势系列
图6绘制分别包含初始值和结果值的两个序列。注意,结果值形成了初始数据的最佳拟合指数曲线。
图6:初始值与指数趋势的差异
日期系列
的FillDataSeriesDate ()方法用于使用特定的一步表示添加到每个连续值的天数、工作日、月或年。该方法有三个必需参数和一个可选参数。第一个必需的参数是类型CellOrientation并指示序列是水平的还是垂直的。第二个参数是类型DateUnitType并确定步长值的类型-日、工作日、月或年。第三个必需参数指定要添加到每个连续值的步骤。第四个参数是可选的,指定该系列的停止值。如果设置了此参数,并且序列达到指定的停止值,则所有后续单元格都为空。
示例5演示如何构造使用5/28/2013作为起点,并为每个连续的值添加两个工作日。
例5:填充日期序列
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0,0)。SetValue(new DateTime(2013, 5,28));CellRange range = new CellRange(0,0,0,9);(范围)worksheet.Cells .FillDataSeriesDate (CellOrientation。水平,DateUnitType。工作日,2);
图7演示了的结果示例5.
图7:日期序列
仔细看看结果,5/28/2013是周二, 2013年5月30日周四2013年6月3日周一2013年6月5日周三2013年6月7日星期五, 2013年6月11日周二.所有结果日期都是工作日,它们之间的步长恰好是两个工作日。
自动灌装系列
的FillDataSeriesAuto ()方法自动构造数字、数字和文本组合、日期或时间段的复杂模式。在大多数情况下,它使用线性拟合算法来寻找级数的下一个值。该方法可以自动填充不同类型的数据。例如,如果你输入1 2 3在连续单元中使用自动填充,结果将是4 5 6 7.下面是支持自动填充的数据列表:
最初的选择 | 延长系列 |
---|---|
1 2 3 | 4、5、6…… |
9:00 | 10点,11点,12点… |
我的 | 星期二,星期三,星期四… |
周一 | 星期二,星期三,星期四…… |
1月 | 2月,3月,4月… |
1月,4月 | 七月,十月,一月… |
15-Jan, 15-Apr | 15-Jul 15-Oct… |
2007年,2008年 | 2009年、2010年、2011年…… |
第三季 | Q4, q1, q2… |
Quarter3 | 第四节,第一节,第二节…… |
text1, textA | text2, textta, text3, textta… |
产品1 | 产品2、产品3…… |
如果你调用FillDataSeriesAuto ()对于没有出现在上面列表中的数据,该方法重复其初始值。
与其他自动填充方法类似,FillDataSeriesAuto ()需要三个参数。第一个参数称为seriesOrientation,为类型CellOrientation.它用于确定序列是水平方向还是垂直方向。第二个参数指定填充的方向。例如,您可以从cell中选择值A1到F1或者来自cellF1到A1.第三个参数是可选的,用于定义用于生成整个系列的初始值的数量。
例子6控件的用法FillDataSeriesAuto ()初始值的方法1日在单元格中设置A1.生成的级数填充了范围A1: F1分别如下:第一,第二,第三,第四,第五和第六.
例6:自动填充
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0,0).SetValue (" 1 ");CellRange range = new CellRange(0,0,0,5);(范围)worksheet.Cells .FillDataSeriesAuto (CellOrientation。水平,真正的);
图8演示了的结果例子6.
图8:自动填充
例7控件的行为FillDataSeriesAuto ()方法。这一次是初值6日出现在细胞中F1应用的自动填充方向是相反的。注意,构造的CellRange实际上是外国游客1:A1,而不是A1: F1.得到的级数是:11, 12, 9, 8, 7, 6.
例7:反向自动填充
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0 5).SetValue (6);CellRange range = new CellRange(0,5,0,0);(范围)worksheet.Cells .FillDataSeriesAuto (CellOrientation。水平,真正的);
图9演示了的结果例7.