本文整理汇总了C#中XlsFile.GetImage方法的典型用法代码示例。如果您正苦于以下问题:C# XlsFile.GetImage方法的具体用法?C# XlsFile.GetImage怎么用?C# XlsFile.GetImage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XlsFile
的用法示例。
在下文中一共展示了XlsFile.GetImage方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReadDataTable
/// <summary>
/// Читает данные с текущего листа XLS-файла.
/// </summary>
/// <param name="xlsFile">XSL-файл.</param>
/// <returns>Таблица с прочитанными данными.</returns>
private static DataTable ReadDataTable(XlsFile xlsFile)
{
// установить имя таблицы
DataTable table = new DataTable(xlsFile.GetSheetName(xlsFile.ActiveSheet));
// первая строка - названия столбцов
// вторая строка - типы столбцов
if (xlsFile.RowCount < 2)
throw new CoreInvalidOperationException(Resources.ResourceManager.GetString("InvalidFileFormatException"));
// прочитать имена столбцов для таблицы
for (int col = 0; col < xlsFile.ColCount; col++)
{
if (xlsFile.GetCellValue(1, col + 1) == null)
break;
// прочитать тип столбца
Type columnType = Type.GetType(xlsFile.GetCellValue(2, col + 1).ToString(), false);
if (columnType == null)
throw new CoreInvalidOperationException(Resources.ResourceManager.GetString("InvalidFileFormatException"));
table.Columns.Add(xlsFile.GetCellValue(1, col + 1).ToString(), columnType);
}
// прочитать данные
int rowFrom = 2;
/* XlsFile тупо обрабатывает
* вложенные картинки. Поместить картинку в определённую клетку можно,
* а вот взять её из клетки нельзя. Взять картинку можно только из массива
* рисунков Excel, начинающегося почему то с 2 (хотя в доке написано ч 1!).
* Будем надеяться, что они там в правильном порядке лежат.
*/
int imageCount = 2;
for (int row = rowFrom; row < xlsFile.RowCount; ++row)
{
// Т.к. XlsFile очень часто врёт по поводу количества строк в файле,
// то мы подстраховываемся таким образом. Считаем, что данные кончились,
// если колонка 'A' в строке пустая
if (xlsFile.GetCellValue(row + 1, 1) == null)
break;
object[] values = new object[table.Columns.Count];
for(int col = 0; col < table.Columns.Count; ++col)
{
if(table.Columns[col].DataType == typeof( byte[] ))
{
TXlsImgType imageType = TXlsImgType.Unknown;
values[col] = ConvertValue( xlsFile.GetImage( imageCount++, ref imageType ),
table.Columns[col].DataType );
}
else
{
values[col] = ConvertValue( xlsFile.GetCellValue( row + 1, col + 1 ),
table.Columns[col].DataType );
}
}
table.Rows.Add(values);
}
return table;
}