You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<ProjectSummary>&lt%3bp&gt%3bPicoXLSX is a small .NET / C# library to create XLSX files %28Microsoft Excel 2007 or newer%29 in an easy and native way&lt%3b/p&gt%3b
Copy file name to clipboardExpand all lines: PicoXLSX/LowLevel.cs
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1632,7 +1632,7 @@ public static string GeneratePasswordHash(string password)
1632
1632
/// <param name="date">Date to process</param>
1633
1633
/// <returns>Date or date and time as number</returns>
1634
1634
/// <exception cref="FormatException">Throws a FormatException if the passed date cannot be translated to the OADate format</exception>
1635
-
/// <remarks>OAdate format starts at January 1st 1900 (actually 00.01.1900) and ends at December 31 9999. Values beyond these dates cannot be handled by Excel under normal circumstances and will throw a FormatException</remarks>
1635
+
/// <remarks>OAdate format starts at January 1st 1900 (actually 00.01.1900) and ends at December 31 9999. Values after these dates cannot be handled by Excel under normal circumstances and will throw a FormatException</remarks>
Copy file name to clipboardExpand all lines: PicoXLSX/Worksheet.cs
+45-28Lines changed: 45 additions & 28 deletions
Original file line number
Diff line number
Diff line change
@@ -1093,8 +1093,8 @@ public void ResetColumn(int columnNumber)
1093
1093
/// Gets the first existing column number in the current worksheet (zero-based)
1094
1094
/// </summary>
1095
1095
/// <returns>Zero-based column number. In case of an empty worksheet, -1 will be returned</returns>
1096
-
/// <remarks>GetLastColumnNumber() will not return the last column with data in any case. If there is a formated but empty cell (or many) before the first cell with data,
1097
-
/// GetLastColumnNumber() will return the column number of this empty cell. Use <see cref="GetFirstDataColumnNumber"/> in this case.</remarks>
1096
+
/// <remarks>GetFirstColumnNumber() will not return the first column with data in any case. If there is a formatted but empty cell (or many) before the first cell with data,
1097
+
/// GetFirstColumnNumber() will return the column number of this empty cell. Use <see cref="GetFirstDataColumnNumber"/> in this case.</remarks>
1098
1098
publicintGetFirstColumnNumber()
1099
1099
{
1100
1100
returnGetBoundaryNumber(false,true);
@@ -1108,14 +1108,14 @@ public int GetFirstColumnNumber()
1108
1108
/// If you want the first defined column, use <see cref="GetFirstColumnNumber"/> instead.</remarks>
1109
1109
publicintGetFirstDataColumnNumber()
1110
1110
{
1111
-
returnGetBoundaryDataNumber(false,true);
1111
+
returnGetBoundaryDataNumber(false,true,true);
1112
1112
}
1113
1113
1114
1114
/// <summary>
1115
1115
/// Gets the first existing row number in the current worksheet (zero-based)
1116
1116
/// </summary>
1117
1117
/// <returns>Zero-based row number. In case of an empty worksheet, -1 will be returned</returns>
1118
-
/// <remarks>GetFirstRowNumber() will not return the first row with data in any case. If there is a formated but empty cell (or many) before the first cell with data,
1118
+
/// <remarks>GetFirstRowNumber() will not return the first row with data in any case. If there is a formatted but empty cell (or many) before the first cell with data,
1119
1119
/// GetFirstRowNumber() will return the row number of this empty cell. Use <see cref="GetFirstDataRowNumber"/> in this case.</remarks>
1120
1120
publicintGetFirstRowNumber()
1121
1121
{
@@ -1126,19 +1126,19 @@ public int GetFirstRowNumber()
1126
1126
/// Gets the first existing row number with data in the current worksheet (zero-based)
1127
1127
/// </summary>
1128
1128
/// <returns>Zero-based row number. In case of an empty worksheet, -1 will be returned</returns>
1129
-
/// <remarks>GetFirstDataColumnNumber() will ignore formatted but empty cells before the first column with data.
1130
-
/// If you want the first defined column, use <see cref="GetFirstColumnNumber"/> instead.</remarks>
1129
+
/// <remarks>GetFirstDataRowNumber() will ignore formatted but empty cells before the first row with data.
1130
+
/// If you want the first defined row, use <see cref="GetFirstRowNumber"/> instead.</remarks>
1131
1131
publicintGetFirstDataRowNumber()
1132
1132
{
1133
-
returnGetBoundaryDataNumber(true,true);
1133
+
returnGetBoundaryDataNumber(true,true,true);
1134
1134
}
1135
1135
1136
1136
/// <summary>
1137
1137
/// Gets the last existing column number in the current worksheet (zero-based)
1138
1138
/// </summary>
1139
1139
/// <returns>Zero-based column number. In case of an empty worksheet, -1 will be returned</returns>
1140
1140
/// <remarks>GetLastColumnNumber() will not return the last column with data in any case. If there is a formatted (or with the definition of AutoFilter,
1141
-
/// column width or hidden state) but empty cell (or many) beyond the last cell with data,
1141
+
/// column width or hidden state) but empty cell (or many) after the last cell with data,
1142
1142
/// GetLastColumnNumber() will return the column number of this empty cell. Use <see cref="GetLastDataColumnNumber"/> in this case.</remarks>
1143
1143
publicintGetLastColumnNumber()
1144
1144
{
@@ -1149,19 +1149,19 @@ public int GetLastColumnNumber()
1149
1149
/// Gets the last existing column number with data in the current worksheet (zero-based)
1150
1150
/// </summary>
1151
1151
/// <returns>Zero-based column number. in case of an empty worksheet, -1 will be returned</returns>
1152
-
/// <remarks>GetLastDataColumnNumber() will ignore formatted (or with the definition of AutoFilter, column width or hidden state) but empty cells beyond the last column with data.
1152
+
/// <remarks>GetLastDataColumnNumber() will ignore formatted (or with the definition of AutoFilter, column width or hidden state) but empty cells after the last column with data.
1153
1153
/// If you want the last defined column, use <see cref="GetLastColumnNumber"/> instead.</remarks>
1154
1154
publicintGetLastDataColumnNumber()
1155
1155
{
1156
-
returnGetBoundaryDataNumber(false,false);
1156
+
returnGetBoundaryDataNumber(false,false,true);
1157
1157
}
1158
1158
1159
1159
/// <summary>
1160
1160
/// Gets the last existing row number in the current worksheet (zero-based)
1161
1161
/// </summary>
1162
1162
/// <returns>Zero-based row number. In case of an empty worksheet, -1 will be returned</returns>
1163
1163
/// <remarks>GetLastRowNumber() will not return the last row with data in any case. If there is a formatted (or with the definition of row height or hidden state)
1164
-
/// but empty cell (or many) beyond the last cell with data,
1164
+
/// but empty cell (or many) after the last cell with data,
1165
1165
/// GetLastRowNumber() will return the row number of this empty cell. Use <see cref="GetLastDataRowNumber"/> in this case.</remarks>
1166
1166
publicintGetLastRowNumber()
1167
1167
{
@@ -1173,19 +1173,19 @@ public int GetLastRowNumber()
1173
1173
/// Gets the last existing row number with data in the current worksheet (zero-based)
1174
1174
/// </summary>
1175
1175
/// <returns>Zero-based row number. in case of an empty worksheet, -1 will be returned</returns>
1176
-
/// <remarks>GetLastDataColumnNumber() will ignore formatted (or with the definition of row height or hidden state) but empty cells beyond the last column with data.
1176
+
/// <remarks>GetLastDataColumnNumber() will ignore formatted (or with the definition of row height or hidden state) but empty cells after the last column with data.
1177
1177
/// If you want the last defined column, use <see cref="GetLastRowNumber"/> instead.</remarks>
1178
1178
publicintGetLastDataRowNumber()
1179
1179
{
1180
-
returnGetBoundaryDataNumber(true,false);
1180
+
returnGetBoundaryDataNumber(true,false,true);
1181
1181
}
1182
1182
1183
1183
/// <summary>
1184
1184
/// Gets the last existing cell in the current worksheet (bottom right)
1185
1185
/// </summary>
1186
1186
/// <returns>Nullable Cell Address. If no cell address could be determined, null will be returned</returns>
1187
1187
/// <remarks>GetLastCellAddress() will not return the last cell with data in any case. If there is a formatted (or with definitions of hidden states, AutoFilters, heights or widths)
1188
-
/// but empty cell (or many) beyond the last cell with data,
1188
+
/// but empty cell (or many) after the last cell with data,
1189
1189
/// GetLastCellAddress() will return the address of this empty cell. Use <see cref="GetLastDataCellAddress"/> in this case.</remarks>
1190
1190
1191
1191
publicCell.Address?GetLastCellAddress()
@@ -1203,7 +1203,7 @@ public int GetLastDataRowNumber()
1203
1203
/// Gets the last existing cell with data in the current worksheet (bottom right)
1204
1204
/// </summary>
1205
1205
/// <returns>Nullable Cell Address. If no cell address could be determined, null will be returned</returns>
1206
-
/// <remarks>GetLastDataCellAddress() will ignore formatted (or with definitions of hidden states, AutoFilters, heights or widths) but empty cells beyond the last cell with data.
1206
+
/// <remarks>GetLastDataCellAddress() will ignore formatted (or with definitions of hidden states, AutoFilters, heights or widths) but empty cells after the last cell with data.
1207
1207
/// If you want the last defined cell, use <see cref="GetLastCellAddress"/> instead.</remarks>
1208
1208
1209
1209
publicCell.Address?GetLastDataCellAddress()
@@ -1221,7 +1221,7 @@ public int GetLastDataRowNumber()
1221
1221
/// Gets the first existing cell in the current worksheet (bottom right)
1222
1222
/// </summary>
1223
1223
/// <returns>Nullable Cell Address. If no cell address could be determined, null will be returned</returns>
1224
-
/// <remarks>GetFirstCellAddress() will not return the first cell with data in any case. If there is a formated but empty cell (or many) before the first cell with data,
1224
+
/// <remarks>GetFirstCellAddress() will not return the first cell with data in any case. If there is a formatted but empty cell (or many) before the first cell with data,
1225
1225
/// GetLastCellAddress() will return the address of this empty cell. Use <see cref="GetFirstDataCellAddress"/> in this case.</remarks>
1226
1226
publicCell.Address?GetFirstCellAddress()
1227
1227
{
@@ -1256,37 +1256,54 @@ public int GetLastDataRowNumber()
1256
1256
/// </summary>
1257
1257
/// <param name="row">If true, the min or max row is returned, otherwise the column</param>
1258
1258
/// <param name="min">If true, the min value of the row or column is defined, otherwise the max value</param>
1259
+
/// <param name="ignoreEmpty">If true, empty cell values are ignored, otherwise considered without checking the content</param>
1259
1260
/// <returns>Min or max number, or -1 if not defined</returns>
0 commit comments