У меня такая задача недавно срочно появилась. Имеется файл excel, где первая колонка это список координат строк пикселей по оси Х(0,4,8,12,16...), вторая колонка это список линий первого генерируемого BMP файла (размер 1024х768). если в ячейке стоит символ Х, то смотрится на левую ячейку первой колонки и определяется координата рисуемой линии (Picture1.Line (0, 0)-(0, 767)). Третья колонка это второй BMP файл. всего 13 BMP файлов.
В итоге должен получиться BMP файл, где на черном фоне 256 белых вертикальных линий толщиной в 1 пиксель размещенных в заданном порядке
Какой примерно код для считывания данных с excel? и какой тип цикла мне применить.
Partial Class Engine
Private Shared _UrlSchemes As UrlSchemes
Public Shared ReadOnly Property UrlSchemes() As UrlSchemes
Get
 im Result = TryCast(HttpRuntime.Cache("ME412_UrlSchemes", UrlSchemes)
If Result Is Nothing Then
Result = New UrlSchemes
HttpRuntime.Cache.Add("ME412_UrlSchemes", Result, Nothing, DateTime.MaxValue, TimeSpan.FromHours(1), CacheItemPriority.High, Nothing)
End If
Return Result
End Get
End Property
Public Shared Sub InvalidateUrlSchemes()
HttpRuntime.Cache.Remove("ME412_UrlSchemes"
End Sub
Public Shared Function GetCheckedUrl(ByVal url As String, ByVal siteId As Guid) As String
 im BaseUrl = url.GetLeft(96)
 im PlainUrl = BaseUrl.Replace("{var}", ""
If Not CheckUrlExists(PlainUrl, siteId) Then Return PlainUrl
 im i = 0
 im HasVar = BaseUrl.Contains("{var}"
 o
 im CheckedUrl As String
If HasVar Then
CheckedUrl = BaseUrl.Replace("{var}", i.ToString)
Else
CheckedUrl = BaseUrl + i.ToString
End If
If Not CheckUrlExists(CheckedUrl, siteId) Then Return CheckedUrl
i += 1
Loop
End Function
Public Shared Function CheckUrlExists(ByVal url As String, ByVal siteId As Guid) As Boolean
Using Conn = CreateConnection()
Using Comm = New SqlCommand("ME_CheckUrlExists", Conn)
Comm.CommandType = CommandType.StoredProcedure
Comm.Parameters.Add("@SiteID", SqlDbType.UniqueIdentifier).Value = siteId
Comm.Parameters.Add("@Url", SqlDbType.NVarChar, 100).Value = url
Return CInt(Comm.ExecuteScalar) = 1
End Using
End Using
End Function
End Class