|
1 |
Imports GemBox.Spreadsheet
|
|
2 |
Imports System.Drawing
|
|
3 |
Imports System.IO
|
|
4 |
|
|
5 |
Public Class CGembox
|
|
6 |
|
|
7 |
Public _ExcelFile As ExcelFile
|
|
8 |
Dim _Index_Cnt As Integer = 2
|
|
9 |
Dim _LicenseKey As String = "EXK0-W4HZ-N518-IMEW"
|
|
10 |
Sub New()
|
|
11 |
setLicense()
|
|
12 |
End Sub
|
|
13 |
Private Sub setLicense()
|
|
14 |
SpreadsheetInfo.SetLicense(_LicenseKey)
|
|
15 |
_ExcelFile = New ExcelFile
|
|
16 |
' _ExcelFile = New ExcelFile
|
|
17 |
End Sub
|
|
18 |
|
|
19 |
#Region "엑셀 공용 함수"
|
|
20 |
Dim EXCEL_HEAD As Integer = 0
|
|
21 |
Dim EXCEL_START As Integer = 1
|
|
22 |
|
|
23 |
Function SaveFileFunc(ByVal mWorksheet As String, ByVal mPath As String, ByVal mDT As DataTable) As Boolean
|
|
24 |
Try
|
|
25 |
SetCell(_ExcelFile.Worksheets(mWorksheet).Rows(EXCEL_HEAD).Cells(0), "HEAD")
|
|
26 |
SetCell(_ExcelFile.Worksheets(mWorksheet).Rows(EXCEL_START).Cells(0), "START")
|
|
27 |
For mColcnt = 0 To mDT.Columns.Count - 1
|
|
28 |
SetCell(_ExcelFile.Worksheets(mWorksheet).Rows(EXCEL_HEAD).Cells(mColcnt + 1), mDT.Columns(mColcnt).ColumnName)
|
|
29 |
Next
|
|
30 |
If mDT IsNot Nothing Then
|
|
31 |
For mRowcnt = 0 To mDT.Rows.Count - 1
|
|
32 |
SetCell(_ExcelFile.Worksheets(mWorksheet).Rows(EXCEL_START + 1 + mRowcnt).Cells(0), String.Empty)
|
|
33 |
For mColcnt = 0 To mDT.Columns.Count - 1
|
|
34 |
SetCell(_ExcelFile.Worksheets(mWorksheet).Rows(EXCEL_START + mRowcnt).Cells(mColcnt + 1), mDT.Rows(mRowcnt).Item(mColcnt).ToString)
|
|
35 |
Next
|
|
36 |
Next
|
|
37 |
End If
|
|
38 |
SetCell(_ExcelFile.Worksheets(mWorksheet).Rows(mDT.Rows.Count + EXCEL_START).Cells(0), "END")
|
|
39 |
SetSaveFile(_ExcelFile, mPath)
|
|
40 |
Catch ex As Exception
|
|
41 |
Return False
|
|
42 |
End Try
|
|
43 |
Return True
|
|
44 |
End Function
|
|
45 |
|
|
46 |
Function LoadFileFunc() As DataSet
|
|
47 |
Dim oDs As New DataSet
|
|
48 |
' Dim oExcelFile As New ExcelFile
|
|
49 |
_TempExcel = New ExcelFile
|
|
50 |
' _TempFileName = DateTime.Now.Year & "_" & DateTime.Now.Month & "_" & DateTime.Now.Day & " " & DateTime.Now.Hour & "_" & DateTime.Now.Minute & "_" & DateTime.Now.Second
|
|
51 |
For Each oSheet In _ExcelFile.Worksheets
|
|
52 |
|
|
53 |
If oSheet.Name = _Sheet_Equipment Or
|
|
54 |
oSheet.Name = _Sheet_EquipmentComponents Or
|
|
55 |
oSheet.Name = _Sheet_Instrumentation Or
|
|
56 |
oSheet.Name = _Sheet_Piping Then
|
|
57 |
_TempExcel.Worksheets.AddCopy(oSheet.Name, oSheet)
|
|
58 |
Dim oDt As New DataTable
|
|
59 |
oDt.TableName = oSheet.Name
|
|
60 |
|
|
61 |
Dim mFindHeadInt As Integer = 0 ' GetFindRow(_ExcelFile.Worksheets(msheetName), "HEAD")
|
|
62 |
Dim mStartInt As Integer = 1 'GetFindRow(_ExcelFile.Worksheets(msheetName), "START")
|
|
63 |
Dim mLastColInt As Integer = oSheet.CalculateMaxUsedColumns 'GetFindColumnCount(_ExcelFile.Worksheets(oSheet.Name), mFindHeadInt)
|
|
64 |
|
|
65 |
Dim mInputColInt As Integer = 0
|
|
66 |
If mFindHeadInt <> -1 Or mStartInt <> -1 Or mLastColInt <> -1 Then
|
|
67 |
For mCellcnt = 1 To mLastColInt
|
|
68 |
If _ExcelFile.Worksheets(oSheet.Name).Rows(mFindHeadInt).Cells(mCellcnt).Value <> "" Then
|
|
69 |
Dim oCheckColumnName As Boolean = False
|
|
70 |
For i = 0 To oDt.Columns.Count - 1
|
|
71 |
If oDt.Columns(i).ColumnName = _ExcelFile.Worksheets(oSheet.Name).Rows(mFindHeadInt).Cells(mCellcnt).Value Then
|
|
72 |
oCheckColumnName = True
|
|
73 |
Exit For
|
|
74 |
End If
|
|
75 |
Next
|
|
76 |
If oCheckColumnName = False Then
|
|
77 |
'/ 컬럼이름을 데이터테이블에 저장. 그리드뷰에 출력하기 위해서
|
|
78 |
Dim oCol As DataColumn = oDt.Columns.Add(_ExcelFile.Worksheets(oSheet.Name).Rows(mFindHeadInt).Cells(mCellcnt).Value)
|
|
79 |
oCol.Namespace = mCellcnt
|
|
80 |
mInputColInt = mCellcnt
|
|
81 |
End If
|
|
82 |
End If
|
|
83 |
Next
|
|
84 |
|
|
85 |
Dim oIndexCol As DataColumn = oDt.Columns.Add(_Column_Index)
|
|
86 |
oIndexCol.Namespace = mInputColInt
|
|
87 |
oIndexCol.ColumnMapping = MappingType.Hidden
|
|
88 |
'/END 열을 찾아서 START 부터 END 까지 데이터를 데이터테이블에 입력
|
|
89 |
Dim mFindEndInt As Integer = _ExcelFile.Worksheets(oSheet.Name).Rows.Count 'GetFindRow(_ExcelFile.Worksheets(oSheet.Name), " ")
|
|
90 |
For mRowcnt = 1 To mFindEndInt - 1
|
|
91 |
Try
|
|
92 |
|
|
93 |
Dim mDataRow As DataRow = oDt.NewRow
|
|
94 |
For mCellCnt = 1 To mLastColInt - 1
|
|
95 |
Try
|
|
96 |
Dim oColName As String = _ExcelFile.Worksheets(oSheet.Name).Rows(mFindHeadInt).Cells(mCellCnt).Value
|
|
97 |
If oColName <> Nothing Then
|
|
98 |
|
|
99 |
Dim oValve As String = _ExcelFile.Worksheets(oSheet.Name).Rows(mRowcnt).Cells(mCellCnt).Value
|
|
100 |
If oValve IsNot Nothing Then
|
|
101 |
If oValve = "" Then
|
|
102 |
mDataRow(oColName) = ""
|
|
103 |
Else
|
|
104 |
Dim sPreValue As String = mDataRow(oColName).ToString()
|
|
105 |
|
|
106 |
If sPreValue <> "" Then
|
|
107 |
mDataRow(oColName) = sPreValue & "\" & oValve
|
|
108 |
Else
|
|
109 |
mDataRow(oColName) = oValve
|
|
110 |
End If
|
|
111 |
End If
|
|
112 |
Else
|
|
113 |
If mDataRow(oColName) IsNot Nothing Then
|
|
114 |
If mDataRow(oColName).ToString() = "" Then
|
|
115 |
mDataRow(oColName) = ""
|
|
116 |
End If
|
|
117 |
End If
|
|
118 |
End If
|
|
119 |
End If
|
|
120 |
Catch ex As Exception
|
|
121 |
End Try
|
|
122 |
Next
|
|
123 |
mDataRow(_Column_Index) = mRowcnt
|
|
124 |
If mDataRow("SYM FILE NAME").ToString() <> "" Then
|
|
125 |
oDt.Rows.Add(mDataRow)
|
|
126 |
End If
|
|
127 |
Catch ex As Exception
|
|
128 |
End Try
|
|
129 |
Next
|
|
130 |
End If
|
|
131 |
oDs.Tables.Add(oDt)
|
|
132 |
End If
|
|
133 |
Next
|
|
134 |
Return oDs
|
|
135 |
End Function
|
|
136 |
|
|
137 |
Function AddImageLibrary(ByVal oDs As DataSet, ByVal oPIDSymbol_Dt As DataTable) As DataTable
|
|
138 |
|
|
139 |
Dim oImageSymbol_Dt As DataTable = ImageSymbol_Dt()
|
|
140 |
Dim iColcnt As Integer = 0
|
|
141 |
Dim bCheckSheet As Boolean = False
|
|
142 |
Dim oSymbolSheet As ExcelWorksheet = Nothing
|
|
143 |
For Each oSheet As ExcelWorksheet In _ExcelFile.Worksheets
|
|
144 |
If oSheet.Name = _Sheet_ImageSymbol Then
|
|
145 |
bCheckSheet = True
|
|
146 |
oSymbolSheet = oSheet
|
|
147 |
oSymbolSheet.Clear()
|
|
148 |
Exit For
|
|
149 |
End If
|
|
150 |
Next
|
|
151 |
If bCheckSheet = False Then
|
|
152 |
oSymbolSheet = _ExcelFile.Worksheets.Add(_Sheet_ImageSymbol)
|
|
153 |
End If
|
|
154 |
If oSymbolSheet IsNot Nothing Then
|
|
155 |
For Each oDt As DataTable In oDs.Tables
|
|
156 |
oSymbolSheet.Cells(0, iColcnt).Value = oDt.TableName
|
|
157 |
oSymbolSheet.Columns(iColcnt).AutoFit()
|
|
158 |
Dim oDataRows() As DataRow = oPIDSymbol_Dt.Select("category = '" & oDt.TableName & "'")
|
|
159 |
Dim iRowcnt As Integer = 1
|
|
160 |
For Each oRow In oDataRows
|
|
161 |
Dim sCategory As String = oRow("name").ToString()
|
|
162 |
oSymbolSheet.Cells(iRowcnt, iColcnt).Value = sCategory
|
|
163 |
iRowcnt = iRowcnt + 1
|
|
164 |
Next
|
|
165 |
Dim sStartCell As String = ConvertAlphabet(iColcnt) & 2
|
|
166 |
Dim sEndCell As String = ConvertAlphabet(iColcnt) & iRowcnt
|
|
167 |
|
|
168 |
Dim oAddRow As DataRow = oImageSymbol_Dt.NewRow()
|
|
169 |
oAddRow(_Sheet_ImageSymbol_Type) = oDt.TableName
|
|
170 |
oAddRow(_Sheet_ImageSymbol_StartCell) = sStartCell
|
|
171 |
oAddRow(_Sheet_ImageSymbol_EndCell) = sEndCell
|
|
172 |
oImageSymbol_Dt.Rows.Add(oAddRow)
|
|
173 |
iColcnt = iColcnt + 1
|
|
174 |
Next
|
|
175 |
End If
|
|
176 |
Return oImageSymbol_Dt
|
|
177 |
End Function
|
|
178 |
|
|
179 |
Function ConvertAlphabet(ByVal iCol As Integer) As String
|
|
180 |
If iCol = 0 Then
|
|
181 |
Return "A"
|
|
182 |
ElseIf iCol = 1 Then
|
|
183 |
Return "B"
|
|
184 |
ElseIf iCol = 2 Then
|
|
185 |
Return "C"
|
|
186 |
ElseIf iCol = 3 Then
|
|
187 |
Return "D"
|
|
188 |
ElseIf iCol = 4 Then
|
|
189 |
Return "E"
|
|
190 |
ElseIf iCol = 5 Then
|
|
191 |
Return "F"
|
|
192 |
ElseIf iCol = 6 Then
|
|
193 |
Return "G"
|
|
194 |
ElseIf iCol = 7 Then
|
|
195 |
Return "H"
|
|
196 |
ElseIf iCol = 8 Then
|
|
197 |
Return "I"
|
|
198 |
ElseIf iCol = 9 Then
|
|
199 |
Return "J"
|
|
200 |
ElseIf iCol = 10 Then
|
|
201 |
Return "K"
|
|
202 |
ElseIf iCol = 11 Then
|
|
203 |
Return "L"
|
|
204 |
ElseIf iCol = 12 Then
|
|
205 |
Return "M"
|
|
206 |
ElseIf iCol = 13 Then
|
|
207 |
Return "N"
|
|
208 |
ElseIf iCol = 14 Then
|
|
209 |
Return "O"
|
|
210 |
ElseIf iCol = 15 Then
|
|
211 |
Return "P"
|
|
212 |
ElseIf iCol = 16 Then
|
|
213 |
Return "Q"
|
|
214 |
ElseIf iCol = 17 Then
|
|
215 |
Return "R"
|
|
216 |
ElseIf iCol = 18 Then
|
|
217 |
Return "S"
|
|
218 |
End If
|
|
219 |
Return ""
|
|
220 |
End Function
|
|
221 |
|
|
222 |
|
|
223 |
Function SaveSymbolLibrary(ByVal oDt As DataTable, ByVal oImageSymbol_Dt As DataTable) As Boolean
|
|
224 |
Dim oUpdateFlag As Boolean = True
|
|
225 |
|
|
226 |
Dim mColumnCount As Integer = oDt.Columns.Count
|
|
227 |
Try
|
|
228 |
Dim sSheetName As String = oDt.TableName
|
|
229 |
_ExcelFile.Worksheets(sSheetName).DataValidations.Clear()
|
|
230 |
For Each oCol As DataColumn In oDt.Columns
|
|
231 |
|
|
232 |
If IsNumeric(oCol.Namespace) Then
|
|
233 |
Dim sColindex As Integer = oCol.Namespace
|
|
234 |
Dim sExcelColName As String = _ExcelFile.Worksheets(sSheetName).Cells(0, sColindex).Value
|
|
235 |
Dim sColName As String = oCol.ColumnName
|
|
236 |
If sExcelColName <> sColName And sColName <> _Column_Index Then
|
|
237 |
_ExcelFile.Worksheets(sSheetName).Cells(0, sColindex).Value = sColName
|
|
238 |
End If
|
|
239 |
End If
|
|
240 |
Next
|
|
241 |
Dim sAlphabet As String = ""
|
|
242 |
Dim iLastRow As Integer = 0
|
|
243 |
For j = 0 To oDt.Columns.Count - 1
|
|
244 |
If oDt.Columns(j).ColumnName = _Column_ImageSymbol Then
|
|
245 |
|
|
246 |
Dim iColindex As Integer = -1
|
|
247 |
If IsNumeric(oDt.Columns(j - 1).Namespace) Then
|
|
248 |
iColindex = oDt.Columns(j - 1).Namespace + 1
|
|
249 |
End If
|
|
250 |
If iColindex > 0 Then
|
|
251 |
sAlphabet = ConvertAlphabet(iColindex)
|
|
252 |
_ExcelFile.Worksheets(sSheetName).Columns(iColindex).AutoFit()
|
|
253 |
For i = 0 To oDt.Rows.Count - 1
|
|
254 |
If IsNumeric(oDt.Rows(i)(_Column_Index).ToString()) Then
|
|
255 |
Dim iRowindex As Integer = oDt.Rows(i)(_Column_Index).ToString()
|
|
256 |
Dim sImgSymbolName As String = oDt.Rows(i)(_Column_ImageSymbol).ToString()
|
|
257 |
|
|
258 |
' .ErrorMessage = "Value should be a date between 2011-01-01 and 2011-12-31."
|
|
259 |
iLastRow = iRowindex
|
|
260 |
_ExcelFile.Worksheets(sSheetName).Cells(iRowindex, iColindex).Value = sImgSymbolName
|
|
261 |
Dim oFindCell As DataRow() = oImageSymbol_Dt.Select("Type = '" & sSheetName & "'")
|
|
262 |
If oFindCell.Length = 1 Then
|
|
263 |
Dim sStartcell As String = oFindCell(0)(_Sheet_ImageSymbol_StartCell).ToString()
|
|
264 |
Dim sEndcell As String = oFindCell(0)(_Sheet_ImageSymbol_EndCell).ToString()
|
|
265 |
_ExcelFile.Worksheets(sSheetName).DataValidations.Add(New DataValidation(_ExcelFile.Worksheets(sSheetName), sAlphabet & iLastRow + 1) With {
|
|
266 |
.Type = DataValidationType.List,
|
|
267 |
.Formula1 = "=" & _Sheet_ImageSymbol & "!" & sStartcell & ":" & sEndcell,
|
|
268 |
.InputMessageTitle = "Image Symbol 선택",
|
|
269 |
.InputMessage = "SPPID Symbol과 일치하는 ImageSymbol을 선택해주세요",
|
|
270 |
.ErrorStyle = DataValidationErrorStyle.Information,
|
|
271 |
.ErrorTitle = "Invalid Symbol"})
|
|
272 |
End If
|
|
273 |
|
|
274 |
End If
|
|
275 |
Next
|
|
276 |
End If
|
|
277 |
|
|
278 |
|
|
279 |
End If
|
|
280 |
|
|
281 |
Next
|
|
282 |
|
|
283 |
'Dim oFindCell As DataRow() = oImageSymbol_Dt.Select("Type = '" & sSheetName & "'")
|
|
284 |
'If oFindCell.Length = 1 Then
|
|
285 |
' Dim sStartcell As String = oFindCell(0)(_Sheet_ImageSymbol_StartCell).ToString()
|
|
286 |
' Dim sEndcell As String = oFindCell(0)(_Sheet_ImageSymbol_EndCell).ToString()
|
|
287 |
' _ExcelFile.Worksheets(sSheetName).DataValidations.Add(New DataValidation(_ExcelFile.Worksheets(sSheetName).Cells.GetSubrange(sAlphabet & "1", sAlphabet & iLastRow)) With {
|
|
288 |
'.Type = DataValidationType.List,
|
|
289 |
'.Formula1 = "=" & _Sheet_ImageSymbol & "!" & sStartcell & ":" & sEndcell,
|
|
290 |
'.InputMessageTitle = "Image Symbol 선택",
|
|
291 |
'.InputMessage = "SPPID Symbol과 일치하는 ImageSymbol을 선택해주세요",
|
|
292 |
'.ErrorStyle = DataValidationErrorStyle.Information,
|
|
293 |
'.ErrorTitle = "Invalid Symbol"})
|
|
294 |
'End If
|
|
295 |
|
|
296 |
Catch ex As Exception
|
|
297 |
End Try
|
|
298 |
End Function
|
|
299 |
|
|
300 |
|
|
301 |
|
|
302 |
Function outputToExcelFile(ByVal mdt As DataTable, ByVal mReportSubject As String, ByVal mSavePath As String) As String
|
|
303 |
' Dim mExcelFile As New ExcelFile
|
|
304 |
Try
|
|
305 |
Dim mEwSheet As ExcelWorksheet = _ExcelFile.Worksheets.Add(mReportSubject)
|
|
306 |
Dim mColumnCount As Integer = mdt.Columns.Count
|
|
307 |
' 제목
|
|
308 |
mEwSheet.Cells.GetSubrangeAbsolute(0, 0, 0, mColumnCount - 2).Merged = True
|
|
309 |
mEwSheet.Cells(0, 0).Style.Font.Size = 18 * 20
|
|
310 |
mEwSheet.Cells(0, 0).Style.Font.Weight = ExcelFont.BoldWeight
|
|
311 |
mEwSheet.Cells(0, 0).Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
312 |
mEwSheet.Cells(0, 0).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
313 |
|
|
314 |
mEwSheet.Cells(0, 0).Style.Borders.SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
315 |
mEwSheet.Cells(0, 0).Value = mReportSubject
|
|
316 |
Dim mDateTime As Date = DateTime.Now
|
|
317 |
' 날짜
|
|
318 |
mEwSheet.Cells(0, mColumnCount - 1).Value = mDateTime.Year.ToString() + "-" + String.Format("{0:d2}", mDateTime.Month) + "-" + String.Format("{0:d2}", mDateTime.Day)
|
|
319 |
mEwSheet.Cells(0, mColumnCount - 1).Style.HorizontalAlignment = HorizontalAlignmentStyle.Right
|
|
320 |
mEwSheet.Cells(0, mColumnCount - 1).Style.Font.Size = 14 * 20
|
|
321 |
mEwSheet.Cells(0, mColumnCount - 1).Style.Font.Weight = ExcelFont.BoldWeight
|
|
322 |
mEwSheet.Cells(0, mColumnCount - 1).Style.Borders.SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
323 |
|
|
324 |
'---------------------------------------------------------------
|
|
325 |
' 헤더 설정
|
|
326 |
'--------------------------------------------------------------
|
|
327 |
For i = 0 To mColumnCount - 1
|
|
328 |
'--------------------------------------------------------------------------------
|
|
329 |
'이름.
|
|
330 |
'---------------------------------------------------------------------------------
|
|
331 |
mEwSheet.Cells(1, i).Value = mdt.Columns(i).ToString()
|
|
332 |
'---------------------------------------------------------------------------------
|
|
333 |
' 색깔.
|
|
334 |
'---------------------------------------------------------------------------------
|
|
335 |
mEwSheet.Cells(1, i).Style.FillPattern.SetSolid(Color.CornflowerBlue)
|
|
336 |
'---------------------------------------------------------------------------------
|
|
337 |
' 글씨.
|
|
338 |
'---------------------------------------------------------------------------------
|
|
339 |
mEwSheet.Cells(1, i).Style.Font.Color = Color.White
|
|
340 |
mEwSheet.Cells(1, i).Style.Font.Weight = ExcelFont.BoldWeight
|
|
341 |
'---------------------------------------------------------------------------------
|
|
342 |
' 줄.
|
|
343 |
'---------------------------------------------------------------------------------
|
|
344 |
mEwSheet.Cells(1, i).Style.Borders.SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
345 |
'---------------------------------------------------------------------------------
|
|
346 |
' 세로 정렬
|
|
347 |
'---------------------------------------------------------------------------------
|
|
348 |
mEwSheet.Cells(1, i).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
349 |
'---------------------------------------------------------------------------------
|
|
350 |
' 가로 정렬
|
|
351 |
'---------------------------------------------------------------------------------
|
|
352 |
mEwSheet.Cells(1, i).Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
353 |
Next
|
|
354 |
'---------------------------------------------------------------
|
|
355 |
' 리포트 행 데이터 입력.
|
|
356 |
'---------------------------------------------------------------
|
|
357 |
Dim mblankRow As Integer = 2
|
|
358 |
|
|
359 |
For i = 0 To mdt.Rows.Count - 1
|
|
360 |
For j = 0 To mdt.Columns.Count - 1
|
|
361 |
' 값 입력
|
|
362 |
mEwSheet.Cells(i + mblankRow, j).Value = mdt.Rows(i)(j).ToString()
|
|
363 |
'---------------------------------------------------------------------------------
|
|
364 |
' 줄.
|
|
365 |
'---------------------------------------------------------------------------------
|
|
366 |
mEwSheet.Cells(i + mblankRow, j).Style.Borders.SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
367 |
'---------------------------------------------------------------------------------
|
|
368 |
' 세로 정렬
|
|
369 |
'---------------------------------------------------------------------------------
|
|
370 |
mEwSheet.Cells(i + mblankRow, j).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
371 |
'---------------------------------------------------------------------------------
|
|
372 |
' 가로 정렬
|
|
373 |
'---------------------------------------------------------------------------------
|
|
374 |
mEwSheet.Cells(i + mblankRow, j).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left
|
|
375 |
Next
|
|
376 |
Next
|
|
377 |
'---------------------------------------------------------------------------------
|
|
378 |
' 핏
|
|
379 |
'---------------------------------------------------------------------------------
|
|
380 |
For i = 0 To mColumnCount - 1
|
|
381 |
mEwSheet.Columns(i).AutoFit()
|
|
382 |
Next
|
|
383 |
'---------------------------------------------------------------------------------
|
|
384 |
' 저장
|
|
385 |
'---------------------------------------------------------------------------------
|
|
386 |
SetSaveFile(_ExcelFile, mSavePath)
|
|
387 |
|
|
388 |
Catch ex As Exception
|
|
389 |
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
390 |
Return ""
|
|
391 |
End Try
|
|
392 |
Return mSavePath
|
|
393 |
End Function
|
|
394 |
|
|
395 |
|
|
396 |
'Function OutputToExcelFile(ByVal mUltragrid As UltraGrid, ByVal mReportSubject As String, ByVal mSavePath As String) As String
|
|
397 |
' Dim mExcelFile As New ExcelFile
|
|
398 |
' Try
|
|
399 |
' Dim mEwSheet As ExcelWorksheet = mExcelFile.Worksheets.Add(mReportSubject)
|
|
400 |
' Dim mColumnCount As Integer = mUltragrid.DisplayLayout.Bands(0).Columns.Count
|
|
401 |
' ' 제목
|
|
402 |
' mEwSheet.Cells.GetSubrangeAbsolute(0, 0, 0, mColumnCount - 2).Merged = True
|
|
403 |
' mEwSheet.Cells(0, 0).Style.Font.Size = 18 * 20
|
|
404 |
' mEwSheet.Cells(0, 0).Style.Font.Weight = ExcelFont.BoldWeight
|
|
405 |
' mEwSheet.Cells(0, 0).Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
406 |
' mEwSheet.Cells(0, 0).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
407 |
' mEwSheet.Cells(0, 0).SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
408 |
' mEwSheet.Cells(0, 0).Value = mReportSubject
|
|
409 |
' Dim mDateTime As Date = DateTime.Now
|
|
410 |
' ' 날짜
|
|
411 |
' mEwSheet.Cells(0, mColumnCount - 1).Value = mDateTime.Year.ToString() + "-" + String.Format("{0:d2}", mDateTime.Month) + "-" + String.Format("{0:d2}", mDateTime.Day)
|
|
412 |
' mEwSheet.Cells(0, mColumnCount - 1).Style.HorizontalAlignment = HorizontalAlignmentStyle.Right
|
|
413 |
' mEwSheet.Cells(0, mColumnCount - 1).Style.Font.Size = 14 * 20
|
|
414 |
' mEwSheet.Cells(0, mColumnCount - 1).Style.Font.Weight = ExcelFont.BoldWeight
|
|
415 |
' mEwSheet.Cells(0, mColumnCount - 1).SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
416 |
|
|
417 |
' '---------------------------------------------------------------
|
|
418 |
' ' 헤더 설정
|
|
419 |
' '--------------------------------------------------------------
|
|
420 |
' For i = 0 To mColumnCount - 1
|
|
421 |
' '--------------------------------------------------------------------------------
|
|
422 |
' '이름.
|
|
423 |
' '---------------------------------------------------------------------------------
|
|
424 |
' mEwSheet.Cells(1, i).Value = mUltragrid.DisplayLayout.Bands(0).Columns(i).ToString()
|
|
425 |
' '---------------------------------------------------------------------------------
|
|
426 |
' ' 색깔.
|
|
427 |
' '---------------------------------------------------------------------------------
|
|
428 |
' mEwSheet.Cells(1, i).Style.FillPattern.SetSolid(Color.CornflowerBlue)
|
|
429 |
' '---------------------------------------------------------------------------------
|
|
430 |
' ' 글씨.
|
|
431 |
' '---------------------------------------------------------------------------------
|
|
432 |
' mEwSheet.Cells(1, i).Style.Font.Color = Color.White
|
|
433 |
' mEwSheet.Cells(1, i).Style.Font.Weight = ExcelFont.BoldWeight
|
|
434 |
' '---------------------------------------------------------------------------------
|
|
435 |
' ' 줄.
|
|
436 |
' '---------------------------------------------------------------------------------
|
|
437 |
' mEwSheet.Cells(1, i).SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
438 |
' '---------------------------------------------------------------------------------
|
|
439 |
' ' 세로 정렬
|
|
440 |
' '---------------------------------------------------------------------------------
|
|
441 |
' mEwSheet.Cells(1, i).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
442 |
' '---------------------------------------------------------------------------------
|
|
443 |
' ' 가로 정렬
|
|
444 |
' '---------------------------------------------------------------------------------
|
|
445 |
' mEwSheet.Cells(1, i).Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
446 |
' Next
|
|
447 |
' '---------------------------------------------------------------
|
|
448 |
' ' 리포트 행 데이터 입력.
|
|
449 |
' '---------------------------------------------------------------
|
|
450 |
' Dim mGridRow() As UltraGridRow = mUltragrid.Rows.GetFilteredInNonGroupByRows()
|
|
451 |
' Dim mblankRow As Integer = 2
|
|
452 |
|
|
453 |
' For i = 0 To mGridRow.Length - 1
|
|
454 |
' For j = 0 To mGridRow.Length - 1
|
|
455 |
' ' 값 입력
|
|
456 |
' mEwSheet.Cells(i + mblankRow, j).Value = mGridRow(i).Cells(j).ToString()
|
|
457 |
|
|
458 |
' '---------------------------------------------------------------------------------
|
|
459 |
' ' 셀 색.
|
|
460 |
' '---------------------------------------------------------------------------------
|
|
461 |
' If (mGridRow(i).Cells(j).Appearance.BackColor = Color.Empty) Then
|
|
462 |
' mEwSheet.Cells(i + mblankRow, j).Style.FillPattern.SetSolid(Color.Transparent)
|
|
463 |
' Else
|
|
464 |
' mEwSheet.Cells(i + mblankRow, j).Style.FillPattern.SetSolid(mGridRow(i).Cells(j).Appearance.BackColor)
|
|
465 |
' End If
|
|
466 |
|
|
467 |
' '---------------------------------------------------------------------------------
|
|
468 |
' ' 줄.
|
|
469 |
' '---------------------------------------------------------------------------------
|
|
470 |
' mEwSheet.Cells(i + mblankRow, j).SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
471 |
' '---------------------------------------------------------------------------------
|
|
472 |
' ' 세로 정렬
|
|
473 |
' '---------------------------------------------------------------------------------
|
|
474 |
' mEwSheet.Cells(i + mblankRow, j).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
475 |
' '---------------------------------------------------------------------------------
|
|
476 |
' ' 가로 정렬
|
|
477 |
' '---------------------------------------------------------------------------------
|
|
478 |
' mEwSheet.Cells(i + mblankRow, j).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left
|
|
479 |
' Next
|
|
480 |
' Next
|
|
481 |
' '---------------------------------------------------------------------------------
|
|
482 |
' ' 핏
|
|
483 |
' '---------------------------------------------------------------------------------
|
|
484 |
' For i = 0 To mColumnCount - 1
|
|
485 |
' mEwSheet.Columns(i).AutoFit()
|
|
486 |
' Next
|
|
487 |
' '---------------------------------------------------------------------------------
|
|
488 |
' ' 저장
|
|
489 |
' '---------------------------------------------------------------------------------
|
|
490 |
' If (mSavePath.Contains(".xlsx")) Then
|
|
491 |
' mExcelFile.SaveXlsx(mSavePath)
|
|
492 |
' Else
|
|
493 |
' mExcelFile.SaveXls(mSavePath)
|
|
494 |
' System.Diagnostics.Process.Start(mSavePath)
|
|
495 |
' End If
|
|
496 |
' Catch ex As Exception
|
|
497 |
' MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
498 |
' Return ""
|
|
499 |
' End Try
|
|
500 |
' Return mSavePath
|
|
501 |
'End Function
|
|
502 |
|
|
503 |
'/엑셀파일 여러개 로드할때
|
|
504 |
Function isLoadFile(ByVal mExcelFileList As List(Of ExcelFile), ByVal mFilepath() As String)
|
|
505 |
Try
|
|
506 |
mExcelFileList.Clear()
|
|
507 |
For mcnt = 0 To mFilepath.Length - 1
|
|
508 |
mExcelFileList.Add(New ExcelFile)
|
|
509 |
_ExcelFile = GemBox.Spreadsheet.ExcelFile.Load(mFilepath(mcnt))
|
|
510 |
Next
|
|
511 |
Return True
|
|
512 |
Catch ex As Exception
|
|
513 |
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
514 |
Return False
|
|
515 |
End Try
|
|
516 |
End Function
|
|
517 |
'/엑셀파일 하나만 로드할때
|
|
518 |
Function isLoadFile(ByVal mFilepath As String) As Boolean
|
|
519 |
Try
|
|
520 |
_ExcelFile = GemBox.Spreadsheet.ExcelFile.Load(mFilepath)
|
|
521 |
Return True
|
|
522 |
Catch ex As Exception
|
|
523 |
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
524 |
Return False
|
|
525 |
End Try
|
|
526 |
End Function
|
|
527 |
'엑셀 파일 저장하기
|
|
528 |
Function SetSaveFile(ByVal mExcelFile As ExcelFile, ByVal outputFilepath As String) As Boolean
|
|
529 |
Try
|
|
530 |
mExcelFile.Save(outputFilepath)
|
|
531 |
|
|
532 |
Return True
|
|
533 |
Catch ex As Exception
|
|
534 |
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
535 |
Return False
|
|
536 |
End Try
|
|
537 |
End Function
|
|
538 |
|
|
539 |
Function SetSaveFile(ByVal outputFilepath As String) As Boolean
|
|
540 |
Try
|
|
541 |
_ExcelFile.Save(outputFilepath)
|
|
542 |
|
|
543 |
Return True
|
|
544 |
Catch ex As Exception
|
|
545 |
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
546 |
Return False
|
|
547 |
End Try
|
|
548 |
End Function
|
|
549 |
'엑셀 셀 데이터 가져오기
|
|
550 |
Function GetCellValue(ByVal mData As ExcelCell) As String
|
|
551 |
If mData.Value Is Nothing Then
|
|
552 |
Return String.Empty
|
|
553 |
Else
|
|
554 |
Return mData.Value.ToString
|
|
555 |
End If
|
|
556 |
End Function
|
|
557 |
'엑셀 셀 데이터 소문자로 가져오기
|
|
558 |
Function GetCellValueToLower(ByVal mData As ExcelCell) As String
|
|
559 |
'소문자 변환
|
|
560 |
Return GetCellValue(mData).ToLower
|
|
561 |
End Function
|
|
562 |
|
|
563 |
'검색스트링으로 엑셀파일 A(첫번째컬럼)의 Row찾기
|
|
564 |
Function GetFindRow(ByVal mExcel As ExcelWorksheet, ByVal mName As String) As Integer
|
|
565 |
For mCnt = 1 To mExcel.Rows.Count - 1
|
|
566 |
If GetCellValueToLower(mExcel.Rows(mCnt).Cells(0)) = mName.ToLower Then
|
|
567 |
Return mCnt
|
|
568 |
End If
|
|
569 |
Next
|
|
570 |
Return -1
|
|
571 |
End Function
|
|
572 |
|
|
573 |
'row열에 해당하는 마지막 Interface(컬럼) 인덱스 가져오기
|
|
574 |
|
|
575 |
Function GetFindColumnCount(ByVal mExcel As ExcelWorksheet, ByVal mRowCnt As Integer) As Integer
|
|
576 |
If mRowCnt = -1 Then
|
|
577 |
Return -1
|
|
578 |
End If
|
|
579 |
For mcnt = 1 To mExcel.CalculateMaxUsedColumns
|
|
580 |
If GetCellValue(mExcel.Rows(mRowCnt).Cells(mcnt)) = String.Empty Then
|
|
581 |
Return mcnt - 1
|
|
582 |
End If
|
|
583 |
Next
|
|
584 |
Return -1
|
|
585 |
End Function
|
|
586 |
|
|
587 |
'검색스트링으로 row에 컬럼들중에서 스트링과 같은 문자열인 컬럼 인덱스 가져오기
|
|
588 |
|
|
589 |
Function getFindColumnIndexFromColumnName(ByVal mExcel As ExcelWorksheet, ByVal mrowcnt As Integer, ByVal mData As String, ByVal mColumnCount As Integer) As Integer
|
|
590 |
For mcnt = 1 To mColumnCount
|
|
591 |
If GetCellValueToLower(mExcel.Rows(mrowcnt).Cells(mcnt)) = mData.ToLower Then
|
|
592 |
Return mcnt
|
|
593 |
End If
|
|
594 |
Next
|
|
595 |
Return -1
|
|
596 |
End Function
|
|
597 |
' 검색스트링으로 row에 컬럼들중에서 스트링에 포함하는 컬럼 인덱스 가져오기
|
|
598 |
'시작부터 돌면 = true, 끝에서 부터 돌면 = false
|
|
599 |
|
|
600 |
Function getFindColumnIndexFormContainColumnName(ByVal mExcel As ExcelWorksheet, ByVal mRowcnt As Integer, ByVal mData As String, ByVal mColumnCount As Integer, ByVal IsStandardSearch As Boolean) As Integer
|
|
601 |
If IsStandardSearch Then
|
|
602 |
' true이면 시작점 부터
|
|
603 |
For mcnt = 1 To mColumnCount
|
|
604 |
If GetCellValueToLower(mExcel.Rows(mRowcnt).Cells(mcnt)).StartsWith(mData.ToLower) Then
|
|
605 |
Return mcnt
|
|
606 |
End If
|
|
607 |
Next
|
|
608 |
Else
|
|
609 |
For mcnt = mColumnCount To 1 Step -1
|
|
610 |
If GetCellValueToLower(mExcel.Rows(mRowcnt).Cells(mcnt)).StartsWith(mData.ToLower) Then
|
|
611 |
Return mcnt
|
|
612 |
End If
|
|
613 |
|
|
614 |
|
|
615 |
Next
|
|
616 |
End If
|
|
617 |
Return -1
|
|
618 |
End Function
|
|
619 |
'해당 Row가 빈행인지 확인
|
|
620 |
Function isBlankCheck(ByVal mExcel As ExcelWorksheet, ByVal mrowcnt As Integer, ByVal mColumnCnt As Integer) As Boolean
|
|
621 |
Dim mBlanckCheck As Boolean = True
|
|
622 |
For mcnt = 0 To mColumnCnt
|
|
623 |
If GetCellValue(mExcel.Rows(mrowcnt).Cells(mcnt)) <> String.Empty Then
|
|
624 |
mBlanckCheck = False
|
|
625 |
End If
|
|
626 |
Next
|
|
627 |
Return mBlanckCheck
|
|
628 |
End Function
|
|
629 |
|
|
630 |
'셀에 값넣기(가로, 세로 중앙 fit)
|
|
631 |
Public Sub SetCell(ByVal mExcelCell As ExcelCell, ByVal mValue As String)
|
|
632 |
mExcelCell.Value = mValue
|
|
633 |
mExcelCell.Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
634 |
mExcelCell.Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
635 |
End Sub
|
|
636 |
|
|
637 |
|
|
638 |
'셀에 값 넣기(가로, 세로 중앙fit + 글자 진하게)
|
|
639 |
Public Sub SetCellBold(ByVal mExcelCell As ExcelCell, ByVal mValue As String)
|
|
640 |
SetCell(mExcelCell, mValue)
|
|
641 |
mExcelCell.Style.Font.Weight = ExcelFont.BoldWeight
|
|
642 |
End Sub
|
|
643 |
|
|
644 |
|
|
645 |
' 셀에 값 넣기(가로, 세로 중앙fit + 셀 박스)
|
|
646 |
Public Sub SetCellBox(ByVal mExcelCell As ExcelCell, ByVal mValue As String)
|
|
647 |
SetCell(mExcelCell, mValue)
|
|
648 |
mExcelCell.SetBorders(MultipleBorders.Outside, System.Drawing.Color.Black, LineStyle.Thin)
|
|
649 |
End Sub
|
|
650 |
|
|
651 |
'셀에 값 넣기(가로, 세로 중앙fit + 글자 진하게 + 셀 박스)
|
|
652 |
Public Sub SetCellBoldAndBox(ByVal mExcelCell As ExcelCell, ByVal mValue As String)
|
|
653 |
SetCellBold(mExcelCell, mValue)
|
|
654 |
mExcelCell.SetBorders(MultipleBorders.Outside, System.Drawing.Color.Black, LineStyle.Thin)
|
|
655 |
End Sub
|
|
656 |
#End Region
|
|
657 |
|
|
658 |
Sub Init_Setting_Save_Piping_Material_Spec_Report(ByVal mEwSheet As ExcelWorksheet, ByVal mLastColumn As Integer,
|
|
659 |
ByVal mFirstRow As Integer, ByVal mValue As String, ByVal mHeaderName As String, ByVal mFirstColumn As Integer, ByVal mFontSize As Integer,
|
|
660 |
ByVal mRelativeCol As Integer)
|
|
661 |
|
|
662 |
mEwSheet.Cells(mFirstRow, mRelativeCol).Style.Font.Size = mFontSize
|
|
663 |
mEwSheet.Cells(mFirstRow, mRelativeCol).Style.Font.Weight = ExcelFont.BoldWeight
|
|
664 |
mEwSheet.Cells(mFirstRow, mRelativeCol).Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
665 |
mEwSheet.Cells(mFirstRow, mRelativeCol).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
666 |
mEwSheet.Cells(mFirstRow, mRelativeCol).SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
667 |
mEwSheet.Cells(mFirstRow, mRelativeCol).Style.FillPattern.SetSolid(Color.Orange)
|
|
668 |
mEwSheet.Cells(mFirstRow, mRelativeCol).Value = mHeaderName
|
|
669 |
mEwSheet.Cells.GetSubrangeAbsolute(mFirstRow, mFirstColumn, mFirstRow, mLastColumn).Merged = True
|
|
670 |
mEwSheet.Cells(mFirstRow, mRelativeCol + 1).Style.Font.Size = mFontSize
|
|
671 |
mEwSheet.Cells(mFirstRow, mRelativeCol + 1).Style.Font.Weight = ExcelFont.BoldWeight
|
|
672 |
mEwSheet.Cells(mFirstRow, mRelativeCol + 1).Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
673 |
mEwSheet.Cells(mFirstRow, mRelativeCol + 1).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
674 |
mEwSheet.Cells(mFirstRow, mRelativeCol + 1).Style.FillPattern.SetSolid(Color.Orange)
|
|
675 |
mEwSheet.Cells(mFirstRow, mRelativeCol + 1).SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
676 |
|
|
677 |
mEwSheet.Cells(mFirstRow, mRelativeCol + 1).Value = mValue
|
|
678 |
|
|
679 |
'For mcnt = 0 To mEwSheet.Columns.Count - 1
|
|
680 |
' mEwSheet.Columns(mcnt).AutoFit()
|
|
681 |
'Next
|
|
682 |
End Sub
|
|
683 |
|
|
684 |
Function Index_Input(ByVal mName As String) As Boolean
|
|
685 |
If _ExcelFile.Worksheets.Count = 0 Then
|
|
686 |
Dim mEwSheet As ExcelWorksheet = _ExcelFile.Worksheets.Add("Index")
|
|
687 |
mEwSheet.Cells(0, 0).Value = "!Index"
|
|
688 |
Init_Setting_Save_Piping_Material_Spec_Report(mEwSheet, 1, 1, mName, "No", 1, 14 * 16, 1)
|
|
689 |
Return True
|
|
690 |
End If
|
|
691 |
Return False
|
|
692 |
End Function
|
|
693 |
|
|
694 |
|
|
695 |
Sub Init_Main_Column(ByVal mEwSheet As ExcelWorksheet, ByVal mRowInt As Integer, ByVal mColInt As Integer,
|
|
696 |
ByVal mFontSize As Integer, ByVal mBold As Integer,
|
|
697 |
ByVal mHorizontalAlighment As Integer, ByVal mVerticalAlighment As Integer,
|
|
698 |
ByVal mOutsize As Integer, ByVal mOutsideColor As Color, ByVal mOutsideLine As Integer,
|
|
699 |
ByVal mFillpattern As Color, ByVal mValue As String)
|
|
700 |
|
|
701 |
mEwSheet.Cells(mRowInt, mColInt).Style.Font.Size = mFontSize
|
|
702 |
mEwSheet.Cells(mRowInt, mColInt).Style.Font.Weight = mBold
|
|
703 |
mEwSheet.Cells(mRowInt, mColInt).Style.HorizontalAlignment = mHorizontalAlighment
|
|
704 |
mEwSheet.Cells(mRowInt, mColInt).Style.VerticalAlignment = mVerticalAlighment
|
|
705 |
mEwSheet.Cells(mRowInt, mColInt).SetBorders(mOutsize, mOutsideColor, mOutsideLine)
|
|
706 |
mEwSheet.Cells(mRowInt, mColInt).Style.FillPattern.SetSolid(mFillpattern)
|
|
707 |
mEwSheet.Cells(mRowInt, mColInt).Value = mValue
|
|
708 |
mEwSheet.Columns(mColInt).AutoFit()
|
|
709 |
End Sub
|
|
710 |
|
|
711 |
Sub Excel_Report_GRIDVIEW_Input(ByVal mHeaderInt As Integer, ByVal mUltragrid As DataGridView, ByVal mEwSheet As ExcelWorksheet)
|
|
712 |
Dim mRowcnt As Integer = mUltragrid.Rows.Count
|
|
713 |
Dim mColCnt As Integer = mUltragrid.Columns.Count
|
|
714 |
Dim mMainHeadercnt As Integer = mHeaderInt
|
|
715 |
'---------------------------------------------------------------
|
|
716 |
' 헤더 설정
|
|
717 |
'--------------------------------------------------------------
|
|
718 |
For i = 0 To mColCnt - 1
|
|
719 |
'--------------------------------------------------------------------------------
|
|
720 |
'이름.
|
|
721 |
'---------------------------------------------------------------------------------
|
|
722 |
mEwSheet.Cells(mMainHeadercnt, i).Value = mUltragrid.Columns(i).ToString()
|
|
723 |
'---------------------------------------------------------------------------------
|
|
724 |
' 색깔.
|
|
725 |
'---------------------------------------------------------------------------------
|
|
726 |
mEwSheet.Cells(mMainHeadercnt, i).Style.FillPattern.SetSolid(Color.CornflowerBlue)
|
|
727 |
'---------------------------------------------------------------------------------
|
|
728 |
' 글씨.
|
|
729 |
'---------------------------------------------------------------------------------
|
|
730 |
mEwSheet.Cells(mMainHeadercnt, i).Style.Font.Color = Color.White
|
|
731 |
mEwSheet.Cells(mMainHeadercnt, i).Style.Font.Weight = ExcelFont.BoldWeight
|
|
732 |
'---------------------------------------------------------------------------------
|
|
733 |
' 줄.
|
|
734 |
'---------------------------------------------------------------------------------
|
|
735 |
mEwSheet.Cells(mMainHeadercnt, i).Style.Borders.SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
736 |
'---------------------------------------------------------------------------------
|
|
737 |
' 세로 정렬
|
|
738 |
'---------------------------------------------------------------------------------
|
|
739 |
mEwSheet.Cells(mMainHeadercnt, i).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
740 |
'---------------------------------------------------------------------------------
|
|
741 |
' 가로 정렬
|
|
742 |
'---------------------------------------------------------------------------------
|
|
743 |
mEwSheet.Cells(mMainHeadercnt, i).Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
744 |
Next
|
|
745 |
mMainHeadercnt += 1
|
|
746 |
'---------------------------------------------------------------
|
|
747 |
' 리포트 행 데이터 입력.
|
|
748 |
'---------------------------------------------------------------
|
|
749 |
' Dim mGridRow() As UltraGridRow = mUltragrid.Rows.GetFilteredInNonGroupByRows()
|
|
750 |
|
|
751 |
' Dim mblankRow As Integer = 2
|
|
752 |
|
|
753 |
For i = 0 To mRowcnt - 1
|
|
754 |
For j = 0 To mColCnt - 1
|
|
755 |
Try
|
|
756 |
mEwSheet.Cells(mMainHeadercnt, j).Value = mUltragrid.Rows(i).Cells(j).Value
|
|
757 |
|
|
758 |
'---------------------------------------------------------------------------------
|
|
759 |
' 셀 색.
|
|
760 |
'---------------------------------------------------------------------------------
|
|
761 |
If (mUltragrid.Rows(i).Cells(j).Style.BackColor = Color.Empty) Then
|
|
762 |
mEwSheet.Cells(mMainHeadercnt, j).Style.FillPattern.SetSolid(Color.Transparent)
|
|
763 |
Else
|
|
764 |
mEwSheet.Cells(mMainHeadercnt, j).Style.FillPattern.SetSolid(mUltragrid.Rows(i).Cells(j).Style.BackColor)
|
|
765 |
End If
|
|
766 |
|
|
767 |
'---------------------------------------------------------------------------------
|
|
768 |
' 줄.
|
|
769 |
'---------------------------------------------------------------------------------
|
|
770 |
mEwSheet.Cells(mMainHeadercnt, j).Style.Borders.SetBorders(MultipleBorders.None, Color.Black, LineStyle.None)
|
|
771 |
'---------------------------------------------------------------------------------
|
|
772 |
' 세로 정렬
|
|
773 |
'---------------------------------------------------------------------------------
|
|
774 |
mEwSheet.Cells(mMainHeadercnt, j).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
775 |
'---------------------------------------------------------------------------------
|
|
776 |
' 가로 정렬
|
|
777 |
'---------------------------------------------------------------------------------
|
|
778 |
mEwSheet.Cells(mMainHeadercnt, j).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left
|
|
779 |
Catch ex As Exception
|
|
780 |
|
|
781 |
End Try
|
|
782 |
' 값 입력
|
|
783 |
|
|
784 |
Next
|
|
785 |
mMainHeadercnt += 1
|
|
786 |
Next
|
|
787 |
'---------------------------------------------------------------------------------
|
|
788 |
' 핏
|
|
789 |
'---------------------------------------------------------------------------------
|
|
790 |
For i = 0 To mColCnt - 1
|
|
791 |
mEwSheet.Columns(i).AutoFit()
|
|
792 |
Next
|
|
793 |
|
|
794 |
End Sub
|
|
795 |
|
|
796 |
|
|
797 |
|
|
798 |
Sub Excel_Report_Datatable_Input(ByVal mHeaderInt As Integer, ByVal mdt As DataTable, ByVal mEwSheet As ExcelWorksheet)
|
|
799 |
|
|
800 |
Dim mRowcnt As Integer = mdt.Rows.Count
|
|
801 |
Dim mColCnt As Integer = mdt.Columns.Count
|
|
802 |
'---------------------------------------------------------------
|
|
803 |
' SpecName 설정
|
|
804 |
'--------------------------------------------------------------
|
|
805 |
Dim mMainHeadercnt As Integer = mHeaderInt
|
|
806 |
'---------------------------------------------------------------
|
|
807 |
' 헤더 설정
|
|
808 |
'--------------------------------------------------------------
|
|
809 |
For i = 0 To mColCnt - 1
|
|
810 |
'--------------------------------------------------------------------------------
|
|
811 |
'이름.
|
|
812 |
'---------------------------------------------------------------------------------
|
|
813 |
mEwSheet.Cells(mMainHeadercnt, i).Value = mdt.Columns(i).ToString()
|
|
814 |
'---------------------------------------------------------------------------------
|
|
815 |
' 색깔.
|
|
816 |
'---------------------------------------------------------------------------------
|
|
817 |
mEwSheet.Cells(mMainHeadercnt, i).Style.FillPattern.SetSolid(Color.Purple)
|
|
818 |
'---------------------------------------------------------------------------------
|
|
819 |
' 글씨.
|
|
820 |
'---------------------------------------------------------------------------------
|
|
821 |
mEwSheet.Cells(mMainHeadercnt, i).Style.Font.Color = Color.White
|
|
822 |
mEwSheet.Cells(mMainHeadercnt, i).Style.Font.Weight = ExcelFont.BoldWeight
|
|
823 |
'---------------------------------------------------------------------------------
|
|
824 |
' 줄.
|
|
825 |
'---------------------------------------------------------------------------------
|
|
826 |
mEwSheet.Cells(mMainHeadercnt, i).Style.Borders.SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
827 |
'---------------------------------------------------------------------------------
|
|
828 |
' 세로 정렬
|
|
829 |
'---------------------------------------------------------------------------------
|
|
830 |
mEwSheet.Cells(mMainHeadercnt, i).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
831 |
'---------------------------------------------------------------------------------
|
|
832 |
' 가로 정렬
|
|
833 |
'---------------------------------------------------------------------------------
|
|
834 |
mEwSheet.Cells(mMainHeadercnt, i).Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
|
835 |
mEwSheet.Columns(i).AutoFit()
|
|
836 |
Next
|
|
837 |
mMainHeadercnt += 1
|
|
838 |
'---------------------------------------------------------------
|
|
839 |
' 리포트 행 데이터 입력.
|
|
840 |
'---------------------------------------------------------------
|
|
841 |
' Dim mblankRow As Integer = 2
|
|
842 |
|
|
843 |
For i = 0 To mdt.Rows.Count - 1
|
|
844 |
For j = 0 To mdt.Columns.Count - 1
|
|
845 |
'If j = 0 Then
|
|
846 |
' mEwSheet.Cells(mMainHeadercnt, j).Value = i + 1
|
|
847 |
'Else
|
|
848 |
' ' 값 입력
|
|
849 |
' mEwSheet.Cells(mMainHeadercnt, j).Value = mdt.Rows(i)(j).ToString()
|
|
850 |
' '---------------------------------------------------------------------------------
|
|
851 |
'End If
|
|
852 |
|
|
853 |
' 값 입력
|
|
854 |
mEwSheet.Cells(mMainHeadercnt, j).Value = mdt.Rows(i)(j).ToString()
|
|
855 |
|
|
856 |
' 줄.
|
|
857 |
'---------------------------------------------------------------------------------
|
|
858 |
mEwSheet.Cells(mMainHeadercnt, i).Style.Borders.SetBorders(MultipleBorders.Outside, Color.Black, LineStyle.Thin)
|
|
859 |
'---------------------------------------------------------------------------------
|
|
860 |
' 세로 정렬
|
|
861 |
'---------------------------------------------------------------------------------
|
|
862 |
mEwSheet.Cells(mMainHeadercnt, j).Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
|
863 |
'---------------------------------------------------------------------------------
|
|
864 |
' 가로 정렬
|
|
865 |
'---------------------------------------------------------------------------------
|
|
866 |
mEwSheet.Cells(mMainHeadercnt, j).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left
|
|
867 |
mEwSheet.Columns(j).AutoFit()
|
|
868 |
Next
|
|
869 |
mMainHeadercnt += 1
|
|
870 |
Next
|
|
871 |
'---------------------------------------------------------------------------------
|
|
872 |
' 핏
|
|
873 |
'---------------------------------------------------------------------------------
|
|
874 |
'For i = 0 To mColCnt - 1
|
|
875 |
' mEwSheet.Columns(i).AutoFit()
|
|
876 |
'Next
|
|
877 |
End Sub
|
|
878 |
|
|
879 |
Sub HyperLink(ByVal mEwSheet As ExcelWorksheet)
|
|
880 |
'-----------------------------------------
|
|
881 |
' 하이퍼 링크
|
|
882 |
'----------------------------------------
|
|
883 |
mEwSheet.Cells("A1").Value = "!index"
|
|
884 |
mEwSheet.Cells("A1").Style.Font.UnderlineStyle = UnderlineStyle.Single
|
|
885 |
mEwSheet.Cells("A1").Style.Font.Color = Color.Blue
|
|
886 |
mEwSheet.Cells("A1").Hyperlink.Location = ("Index" & "!A1")
|
|
887 |
Init_Setting_Save_Piping_Material_Spec_Report(_ExcelFile.Worksheets(0), 1, _Index_Cnt, mEwSheet.Name, _Index_Cnt - 1, 1, 14 * 16, 1)
|
|
888 |
'_ExcelFile.Worksheets(0).Cells("A" & _Index_Cnt).Value = _Index_Cnt - 1
|
|
889 |
_ExcelFile.Worksheets(0).Cells("B" & _Index_Cnt + 1).Style.Font.UnderlineStyle = UnderlineStyle.Single
|
|
890 |
_ExcelFile.Worksheets(0).Cells("B" & _Index_Cnt + 1).Style.Font.Color = Color.Blue
|
|
891 |
_ExcelFile.Worksheets(0).Cells("B" & _Index_Cnt + 1).Hyperlink.Location = (mEwSheet.Name & "!A1")
|
|
892 |
_ExcelFile.Worksheets(0).Columns(1).Width = 5000
|
|
893 |
'_ExcelFile.Worksheets(0).Cells("B" & _Index_Cnt).Value = mEwSheet.Name
|
|
894 |
_ExcelFile.Worksheets(0).Cells("C" & _Index_Cnt + 1).Style.Font.UnderlineStyle = UnderlineStyle.Single
|
|
895 |
_ExcelFile.Worksheets(0).Cells("C" & _Index_Cnt + 1).Style.Font.Color = Color.Blue
|
|
896 |
_ExcelFile.Worksheets(0).Cells("C" & _Index_Cnt + 1).Hyperlink.Location = (mEwSheet.Name & "!A1")
|
|
897 |
_ExcelFile.Worksheets(0).Columns(2).Width = 9000
|
|
898 |
' _ExcelFile.Worksheets(0).Columns(1).AutoFit()
|
|
899 |
_Index_Cnt += 1
|
|
900 |
End Sub
|
|
901 |
|
|
902 |
|
|
903 |
|
|
904 |
|
|
905 |
|
|
906 |
|
|
907 |
|
|
908 |
End Class
|
|
909 |
|
|
910 |
|