暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

疏文.vb 23KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. Option Strict Off
  2. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  3. Imports Microsoft.Office.Interop.Excel.Constants
  4. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  5. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  6. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  7. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  8. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  9. Imports Microsoft.Office.Interop.Excel.XlWindowState
  10. Imports Microsoft.Office.Interop.Excel
  11. Imports System.IO
  12. Public Class 疏文
  13. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  14. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  15. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  16. Dim 位置1 As String
  17. Dim N2 As Integer : Dim N3 As Integer
  18. ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet
  19. Private Sub 疏文_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  20. Me.MdiParent = ICS_ASMS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  21. SQL_讀取公司資料()
  22. If dr.Read() Then
  23. 公司名稱.Text = dr("公司名稱")
  24. End If
  25. conn.Close()
  26. 已核准的營運成本收支單_rb.Checked = True
  27. 作廢的營運成本收支單_rb.Checked = False
  28. Set_清單1()
  29. 刪除_bt.Enabled = False : 儲存_bt.Enabled = False : 作廢_bt.Enabled = False : 列印_bt.Enabled = False
  30. End Sub
  31. Private Sub Set_清單1()
  32. 控制表_dgv.DataSource = Nothing : ds1.Clear()
  33. 控制表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  34. 控制表_dgv.ColumnHeadersHeight = 25
  35. 控制表_dgv.AllowUserToAddRows = False
  36. 控制表_dgv.RowTemplate.Height = 30
  37. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  38. If 作廢的營運成本收支單_rb.Checked = True And 已核准的營運成本收支單_rb.Checked = False Then
  39. SQL_通用_控制表清單1("疏文")
  40. ElseIf 作廢的營運成本收支單_rb.Checked = False And 已核准的營運成本收支單_rb.Checked = True Then
  41. SQL_通用_控制表清單("疏文")
  42. End If
  43. da.Fill(ds1) : 控制表_dgv.DataSource = ds1.Tables(0) : conn.Close()
  44. 控制表_dgv.Columns(0).FillWeight = 30 : 控制表_dgv.Columns(1).FillWeight = 70 : 控制表_dgv.Columns(2).Visible = False
  45. 控制表_dgv.Columns(3).Visible = False : 控制表_dgv.Columns(4).Visible = False : 控制表_dgv.Columns(5).Visible = False
  46. 控制表_dgv.Columns(6).Visible = False : 控制表_dgv.Columns(7).Visible = False : 控制表_dgv.Columns(8).Visible = False
  47. 控制表_dgv.Columns(9).Visible = False : 控制表_dgv.Columns(10).Visible = False : 控制表_dgv.Columns(11).Visible = False
  48. 控制表_dgv.Columns(12).Visible = False : 控制表_dgv.Columns(13).Visible = False : 控制表_dgv.Columns(14).Visible = False
  49. 控制表_dgv.Columns("開單人").Visible = False
  50. End Sub
  51. Private Sub 控制表_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 控制表_dgv.CellClick
  52. If e.RowIndex = -1 Then : Else
  53. 單號_tb.Text = 控制表_dgv(2, e.RowIndex).Value.ToString
  54. Dim dateString As String = 控制表_dgv(0, e.RowIndex).Value.ToString
  55. Dim dateParts() As String = dateString.Split("/"c)
  56. Dim year As Integer = Integer.Parse(dateParts(0)) + 1911 ' 將民國年轉換為西元年
  57. Dim month As Integer = Integer.Parse(dateParts(1))
  58. Dim day As Integer = Integer.Parse(dateParts(2))
  59. Dim dateTime As New DateTime(year, month, day)
  60. 選擇日期_dtp.Value = dateTime
  61. 選擇日期_dtp.CustomFormat = "yyyy/MM/dd"
  62. 選擇日期_dtp.Format = DateTimePickerFormat.Custom
  63. 檔案名稱_tb.Text = 控制表_dgv(1, e.RowIndex).Value.ToString
  64. 主旨_tb.Text = 控制表_dgv(3, e.RowIndex).Value.ToString
  65. 說明_tb.Text = 控制表_dgv(4, e.RowIndex).Value.ToString
  66. 擬辦_tb.Text = 控制表_dgv(5, e.RowIndex).Value.ToString
  67. ComboBox1.Text = 控制表_dgv(6, e.RowIndex).Value.ToString
  68. ComboBox2.Text = 控制表_dgv(7, e.RowIndex).Value.ToString
  69. ComboBox3.Text = 控制表_dgv(8, e.RowIndex).Value.ToString
  70. ComboBox4.Text = 控制表_dgv(9, e.RowIndex).Value.ToString
  71. ComboBox5.Text = 控制表_dgv(10, e.RowIndex).Value.ToString
  72. ComboBox6.Text = 控制表_dgv(11, e.RowIndex).Value.ToString
  73. ComboBox7.Text = 控制表_dgv(12, e.RowIndex).Value.ToString
  74. ComboBox7.Text = 控制表_dgv(12, e.RowIndex).Value.ToString
  75. 開單人_tb.Text = 控制表_dgv("開單人", e.RowIndex).Value.ToString
  76. If 登入人級別 <> "00" Then
  77. If 控制表_dgv(14, e.RowIndex).Value = True Then
  78. 刪除_bt.Enabled = False : 儲存_bt.Enabled = False : 作廢_bt.Enabled = False : 列印_bt.Enabled = True : 新增_bt.Enabled = True
  79. ElseIf 控制表_dgv(13, e.RowIndex).Value = True And 控制表_dgv(14, e.RowIndex).Value = False Then
  80. 刪除_bt.Enabled = False : 儲存_bt.Enabled = False : 作廢_bt.Enabled = True : 列印_bt.Enabled = True : 新增_bt.Enabled = True
  81. ElseIf 控制表_dgv(13, e.RowIndex).Value = False And 控制表_dgv(14, e.RowIndex).Value = False Then
  82. 刪除_bt.Enabled = True : 儲存_bt.Enabled = True : 作廢_bt.Enabled = True : 列印_bt.Enabled = True : 新增_bt.Enabled = True
  83. End If
  84. Else
  85. 刪除_bt.Enabled = True : 儲存_bt.Enabled = True : 作廢_bt.Enabled = True : 列印_bt.Enabled = True : 新增_bt.Enabled = True
  86. End If
  87. End If
  88. End Sub
  89. Private Sub 查詢_tb_Click(sender As Object, e As EventArgs) Handles 查詢_tb.Click
  90. PA56 = InputBox("請輸入要查詢的單號資料。") : Set_清單1() : PA56 = ""
  91. End Sub
  92. Private Sub 檔案名稱_tb_KeyPress(sender As Object, e As KeyPressEventArgs) Handles 檔案名稱_tb.KeyPress
  93. ' 允许字母、数字和空格,禁止其他字符
  94. If Not Char.IsLetterOrDigit(e.KeyChar) AndAlso Not Char.IsWhiteSpace(e.KeyChar) Then
  95. e.Handled = True
  96. End If
  97. End Sub
  98. Private Sub 新增_bt_Click(sender As Object, e As EventArgs) Handles 新增_bt.Click
  99. 單號_tb.Text = "" : 檔案名稱_tb.Text = "" : 主旨_tb.Text = "" : 說明_tb.Text = "" : 擬辦_tb.Text = ""
  100. ComboBox1.Text = "" : ComboBox2.Text = "" : ComboBox3.Text = "" : ComboBox4.Text = ""
  101. ComboBox5.Text = "" : ComboBox6.Text = "" : ComboBox7.Text = ""
  102. Dim NUM1 As Integer
  103. Dim dat1 As String
  104. Dim selectedDate As DateTime = 選擇日期_dtp.Value
  105. Dim taiwanYear As Integer = selectedDate.Year - 1911
  106. Dim str As String = String.Format("{0}{1:00}{2:00}", taiwanYear, selectedDate.Month, selectedDate.Day)
  107. PA1 = String.Format("{0}/{1:00}/{2:00}", taiwanYear, selectedDate.Month, selectedDate.Day)
  108. SQL_通用_查詢第一筆單號()
  109. If dr.Read() Then : 單號_tb.Text = dr("流水號").ToString : Else : 單號_tb.Text = str & "00" : End If
  110. dat1 = 單號_tb.Text.Substring(0, 7)
  111. If dat1 <> str Then : NUM1 = 1 : Else : NUM1 = Double.Parse(單號_tb.Text.Substring(7, 2)) + 1 : End If
  112. If NUM1 < 10 Then : 單號_tb.Text = str & "0" & NUM1
  113. ElseIf NUM1 > 9 Then : 單號_tb.Text = str & NUM1
  114. End If
  115. PA = 單號_tb.Text : 開單人_tb.Text = gUserName
  116. SQL_通用_新增一筆公函控制表("疏文") : conn.Close()
  117. 刪除_bt.Enabled = True : 儲存_bt.Enabled = True : 作廢_bt.Enabled = False : 列印_bt.Enabled = False : 新增_bt.Enabled = False
  118. End Sub
  119. Private Sub 刪除_bt_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click
  120. SQL_通用_控制表刪除(單號_tb.Text) : conn.Close() : MsgBox("刪除成功!!")
  121. 單號_tb.Text = "" : 檔案名稱_tb.Text = "" : 主旨_tb.Text = "" : 說明_tb.Text = "" : 擬辦_tb.Text = ""
  122. ComboBox1.Text = "" : ComboBox2.Text = "" : ComboBox3.Text = "" : ComboBox4.Text = ""
  123. ComboBox5.Text = "" : ComboBox6.Text = "" : ComboBox7.Text = "" : Set_清單1()
  124. 刪除_bt.Enabled = False : 儲存_bt.Enabled = False : 作廢_bt.Enabled = False : 列印_bt.Enabled = False : 新增_bt.Enabled = True
  125. End Sub
  126. Private Sub 儲存_bt_Click(sender As Object, e As EventArgs) Handles 儲存_bt.Click
  127. If 開單人_tb.Text = gUserName Or 登入人級別 = "00" Then
  128. SQL_通用_控制表修改(檔案名稱_tb.Text, 主旨_tb.Text, 說明_tb.Text, 擬辦_tb.Text, ComboBox1.Text, ComboBox2.Text, ComboBox3.Text, ComboBox4.Text,
  129. ComboBox5.Text, ComboBox6.Text, ComboBox7.Text, 單號_tb.Text, "疏文") : conn.Close() : MsgBox("儲存成功!!") : Set_清單1()
  130. If 登入人級別 <> "00" Then
  131. 刪除_bt.Enabled = True : 儲存_bt.Enabled = True : 作廢_bt.Enabled = True : 列印_bt.Enabled = True : 新增_bt.Enabled = True
  132. End If
  133. Else
  134. MsgBox("請確認開單人是否為本人")
  135. End If
  136. End Sub
  137. Private Sub 作廢_bt_Click(sender As Object, e As EventArgs) Handles 作廢_bt.Click
  138. SQL_通用_控制表作廢(單號_tb.Text, "疏文") : conn.Close() : MsgBox("作廢成功!!") : Set_清單1()
  139. 刪除_bt.Enabled = False : 儲存_bt.Enabled = False : 作廢_bt.Enabled = False : 列印_bt.Enabled = True
  140. End Sub
  141. Private Sub 作廢的營運成本收支單_rb_CheckedChanged(sender As Object, e As EventArgs) Handles 作廢的營運成本收支單_rb.Click
  142. 作廢的營運成本收支單_rb.Checked = True : 已核准的營運成本收支單_rb.Checked = False
  143. Set_清單1()
  144. End Sub
  145. Private Sub 已核准的營運成本收支單_rb_CheckedChanged(sender As Object, e As EventArgs) Handles 已核准的營運成本收支單_rb.Click
  146. 作廢的營運成本收支單_rb.Checked = False : 已核准的營運成本收支單_rb.Checked = True
  147. Set_清單1()
  148. End Sub
  149. Private Sub 查詢_tb_MouseEnter(sender As Object, e As EventArgs) Handles 查詢_tb.MouseEnter
  150. ToolTip1.SetToolTip(Me.查詢_tb, "關鍵字搜尋")
  151. End Sub
  152. Private Sub 新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增_bt.MouseEnter
  153. ToolTip1.SetToolTip(Me.新增_bt, "新增")
  154. End Sub
  155. Private Sub 確認新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 儲存_bt.MouseEnter
  156. ToolTip1.SetToolTip(Me.儲存_bt, "儲存")
  157. End Sub
  158. Private Sub 修改_bt_MouseEnter(sender As Object, e As EventArgs) Handles 作廢_bt.MouseEnter
  159. ToolTip1.SetToolTip(Me.作廢_bt, "作廢")
  160. End Sub
  161. Private Sub 刪除_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除_bt.MouseEnter
  162. ToolTip1.SetToolTip(Me.刪除_bt, "刪除")
  163. End Sub
  164. Private Sub 匯出EXCEL_bt_MouseEnter(sender As Object, e As EventArgs) Handles 列印_bt.MouseEnter
  165. ToolTip1.SetToolTip(Me.列印_bt, "匯出PDF")
  166. End Sub
  167. Private Sub 字體_NUD_ValueChanged(sender As Object, e As EventArgs) Handles 字體_NUD.ValueChanged
  168. 主旨_tb.Font = New System.Drawing.Font("微軟正黑體", 字體_NUD.Value)
  169. 說明_tb.Font = New System.Drawing.Font("微軟正黑體", 字體_NUD.Value)
  170. 擬辦_tb.Font = New System.Drawing.Font("微軟正黑體", 字體_NUD.Value)
  171. End Sub
  172. Private Sub 列印_bt_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
  173. SQL_通用_控制表鎖定(單號_tb.Text, "疏文")
  174. If 登入人級別 <> "00" Then
  175. 刪除_bt.Enabled = False : 儲存_bt.Enabled = False : 作廢_bt.Enabled = True : 列印_bt.Enabled = True : 新增_bt.Enabled = True
  176. End If
  177. Set_清單1()
  178. xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application) : xlApp.Visible = True : xlApp.DisplayAlerts = True
  179. xlApp.Application.WindowState = xlMaximized : xlBook = xlApp.Workbooks.Add : xlSheet = NewMethod(xlBook) : xlBook.Activate() : xlSheet.Activate()
  180. Dim 說明本文 As String
  181. Dim 疏文行數 As Integer = 0
  182. Dim 疏文頁數 As Integer
  183. 說明本文 = 說明_tb.Text
  184. While 說明本文.Contains(vbCrLf)
  185. Dim vbCrLfIndex As Integer = 說明本文.IndexOf(vbCrLf)
  186. 疏文單行內容(疏文行數) = 說明本文.Substring(0, vbCrLfIndex)
  187. 說明本文 = 說明本文.Substring(vbCrLfIndex + 2) : 疏文行數 += 1
  188. End While
  189. If 說明本文 <> "" Then
  190. 疏文單行內容(疏文行數) = 說明本文 : 疏文行數 += 1
  191. End If
  192. 疏文頁數 = Math.Ceiling(疏文行數 / 44)
  193. xlSheet.Cells(1, 37) = 主旨_tb.Text
  194. xlSheet.Cells(1 + (疏文頁數 - 1) * 30, 2) = 擬辦_tb.Text
  195. For i As Integer = 1 To 疏文頁數
  196. BB(xlApp, xlSheet, i)
  197. Next
  198. AA(xlApp, xlSheet)
  199. xlApp.Sheets(2).Delete : xlSheet.PageSetup.PrintArea = ""
  200. Dim pdfFolderPath As String = Path.Combine(System.Windows.Forms.Application.StartupPath, "pdf")
  201. If Not Directory.Exists(pdfFolderPath) Then
  202. Directory.CreateDirectory(pdfFolderPath)
  203. End If
  204. Dim pdfFilePath As String = Path.Combine(pdfFolderPath, 檔案名稱_tb.Text & ".pdf")
  205. xlBook.Sheets(1).ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, pdfFilePath, XlFixedFormatQuality.xlQualityStandard, True)
  206. xlApp.Cells.Select() : xlApp.Application.WindowState = xlMinimized : xlBook.Close(False)
  207. Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)
  208. Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
  209. Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
  210. xlApp.Quit() : xlSheet = Nothing : xlBook = Nothing : xlApp = Nothing : GC.Collect()
  211. Try
  212. Dim chromePath As String = "C:\Program Files\Google\Chrome\Application\chrome.exe"
  213. If System.IO.File.Exists(chromePath) Then
  214. Dim process As New Process()
  215. process.StartInfo.FileName = "chrome"
  216. process.StartInfo.Arguments = """" & pdfFilePath & """"
  217. process.Start()
  218. Else : Dim edgePath As String = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
  219. If System.IO.File.Exists(edgePath) Then
  220. Dim process As New Process()
  221. process.StartInfo.FileName = "msedge"
  222. process.StartInfo.Arguments = """" & pdfFilePath & """"
  223. process.Start()
  224. Else
  225. Process.Start(pdfFilePath)
  226. End If
  227. End If
  228. Catch ex As Exception
  229. MsgBox("以存檔至桌面 。" & vbCrLf & "檔案名稱:" & 檔案名稱_tb.Text & ".pdf")
  230. End Try
  231. End Sub
  232. Private Shared Function NewMethod(xlBook As Microsoft.Office.Interop.Excel.Workbook) As Microsoft.Office.Interop.Excel.Worksheet
  233. Return CType(xlBook.Worksheets.Add, Microsoft.Office.Interop.Excel.Worksheet)
  234. End Function
  235. Private Sub AA(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet)
  236. '====列印======
  237. myExcel.Application.PrintCommunication = False
  238. With myExcel.ActiveSheet.PageSetup
  239. .PrintTitleRows = ""
  240. .PrintTitleColumns = ""
  241. End With
  242. myExcel.Application.PrintCommunication = True
  243. myExcel.ActiveSheet.PageSetup.PrintArea = ""
  244. myExcel.ActiveSheet.PageSetup.CenterHeaderPicture.Filename = System.Windows.Forms.Application.StartupPath & "\pic\ASSS.png"
  245. With myExcel.ActiveSheet.PageSetup.CenterHeaderPicture
  246. .Height = 1398
  247. .Width = 2189.25
  248. End With
  249. myExcel.Application.PrintCommunication = False
  250. With myExcel.ActiveSheet.PageSetup
  251. .LeftHeader = ""
  252. .CenterHeader = "" & Chr(10) & "" & Chr(10) & "" & Chr(10) & "&G"
  253. .RightHeader = ""
  254. .LeftFooter = ""
  255. .CenterFooter = ""
  256. .RightFooter = ""
  257. .LeftMargin = myExcel.Application.InchesToPoints(0.25)
  258. .RightMargin = myExcel.Application.InchesToPoints(0.25)
  259. .TopMargin = myExcel.Application.InchesToPoints(0.75)
  260. .BottomMargin = myExcel.Application.InchesToPoints(0.75)
  261. .HeaderMargin = myExcel.Application.InchesToPoints(0.3)
  262. .FooterMargin = myExcel.Application.InchesToPoints(0.3)
  263. .PrintHeadings = False
  264. .PrintGridlines = False
  265. .CenterHorizontally = False
  266. .CenterVertically = False
  267. .Draft = False
  268. .FirstPageNumber = xlAutomatic
  269. .BlackAndWhite = False
  270. .Zoom = 100
  271. .OddAndEvenPagesHeaderFooter = False
  272. .DifferentFirstPageHeaderFooter = False
  273. .ScaleWithDocHeaderFooter = True
  274. .AlignMarginsHeaderFooter = True
  275. .EvenPage.LeftHeader.Text = ""
  276. .EvenPage.CenterHeader.Text = ""
  277. .EvenPage.RightHeader.Text = ""
  278. .EvenPage.LeftFooter.Text = ""
  279. .EvenPage.CenterFooter.Text = ""
  280. .EvenPage.RightFooter.Text = ""
  281. .FirstPage.LeftHeader.Text = ""
  282. .FirstPage.CenterHeader.Text = ""
  283. .FirstPage.RightHeader.Text = ""
  284. .FirstPage.LeftFooter.Text = ""
  285. .FirstPage.CenterFooter.Text = ""
  286. .FirstPage.RightFooter.Text = ""
  287. End With
  288. myExcel.Application.PrintCommunication = True
  289. myExcel.Application.PrintCommunication = False
  290. With myExcel.ActiveSheet.PageSetup
  291. .PrintTitleRows = ""
  292. .PrintTitleColumns = ""
  293. End With
  294. myExcel.Application.PrintCommunication = True
  295. myExcel.ActiveSheet.PageSetup.PrintArea = ""
  296. myExcel.Application.PrintCommunication = False
  297. With myExcel.ActiveSheet.PageSetup
  298. .LeftHeader = ""
  299. .CenterHeader = ""
  300. .RightHeader = ""
  301. .LeftFooter = ""
  302. .CenterFooter = ""
  303. .RightFooter = ""
  304. .LeftMargin = myExcel.Application.InchesToPoints(0.25)
  305. .RightMargin = myExcel.Application.InchesToPoints(0.25)
  306. .TopMargin = myExcel.Application.InchesToPoints(0.75)
  307. .BottomMargin = myExcel.Application.InchesToPoints(0.75)
  308. .HeaderMargin = myExcel.Application.InchesToPoints(0.3)
  309. .FooterMargin = myExcel.Application.InchesToPoints(0.3)
  310. .PrintHeadings = False
  311. .PrintGridlines = False
  312. '.PrintQuality = 600
  313. .CenterHorizontally = True
  314. .CenterVertically = True
  315. .Orientation = XlPageOrientation.xlLandscape
  316. .Draft = False
  317. .FirstPageNumber = xlAutomatic
  318. .BlackAndWhite = False
  319. .Zoom = False
  320. .FitToPagesWide = 1
  321. .FitToPagesTall = 0
  322. .OddAndEvenPagesHeaderFooter = False
  323. .DifferentFirstPageHeaderFooter = False
  324. .ScaleWithDocHeaderFooter = True
  325. .AlignMarginsHeaderFooter = True
  326. .EvenPage.LeftHeader.Text = ""
  327. .EvenPage.CenterHeader.Text = ""
  328. .EvenPage.RightHeader.Text = ""
  329. .EvenPage.LeftFooter.Text = ""
  330. .EvenPage.CenterFooter.Text = ""
  331. .EvenPage.RightFooter.Text = ""
  332. .FirstPage.LeftHeader.Text = ""
  333. .FirstPage.CenterHeader.Text = ""
  334. .FirstPage.RightHeader.Text = ""
  335. .FirstPage.LeftFooter.Text = ""
  336. .FirstPage.CenterFooter.Text = ""
  337. .FirstPage.RightFooter.Text = ""
  338. End With
  339. myExcel.Application.PrintCommunication = True
  340. myExcel.ActiveSheet.PageSetup.PrintArea = "$A$1:$AL$30"
  341. End Sub
  342. Private Sub BB(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet, ByVal 疏文頁數 As Integer)
  343. Dim col As New List(Of String) From {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC",
  344. "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL"}
  345. If 疏文頁數 = 1 Then
  346. For i As Integer = 1 To 34 : myExcel.Columns(col(i) & ":" & col(i)).ColumnWidth = 8.5 : Next
  347. myExcel.Columns("A:A").ColumnWidth = 13
  348. myExcel.Columns("AK:AK").ColumnWidth = 14.63
  349. myExcel.Columns("AJ:AJ").ColumnWidth = 14.63
  350. myExcel.Columns("AL:AL").ColumnWidth = 13
  351. End If
  352. Dim for1 As Integer = (疏文頁數 - 1) * 30 + 1
  353. Dim for2 As Integer = 疏文頁數 * 30
  354. For i As Integer = for1 To for2 : myExcel.Rows(i & ":" & i).RowHeight = 36.75 : Next
  355. myExcel.Range("B" & for1 & ":B" & for2).Select()
  356. With myExcel.Selection
  357. .HorizontalAlignment = xlCenter : .VerticalAlignment = xlTop : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False
  358. .ReadingOrder = xlContext : .MergeCells = False
  359. End With
  360. myExcel.Selection.Merge
  361. With myExcel.Selection
  362. .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = XlOrientation.xlVertical : .AddIndent = False : .IndentLevel = 0
  363. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True
  364. End With
  365. With myExcel.Selection.Font
  366. .Name = "標楷體" : .Size = 26 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False : .Underline = xlUnderlineStyleNone
  367. .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  368. End With
  369. myExcel.Range("AK" & for1 & ":AK" & for2).Select()
  370. With myExcel.Selection
  371. .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = XlOrientation.xlVertical : .AddIndent = False : .IndentLevel = 0
  372. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True
  373. End With
  374. With myExcel.Selection.Font
  375. .Name = "標楷體" : .Size = 50 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False : .Underline = xlUnderlineStyleNone
  376. .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : .Bold = True
  377. End With
  378. myExcel.ActiveSheet.Shapes.AddTextbox(1, 165, 31.8749606299, 1741.8749606299, 1065).Select
  379. myExcel.ActiveSheet.Shapes.Range("TextBox 1").Select()
  380. With myExcel.Selection.ShapeRange.TextFrame2.TextRange.Font
  381. .NameComplexScript = "標楷體"
  382. .NameFarEast = "標楷體"
  383. .Name = "標楷體"
  384. End With
  385. Dim 說文內文 As String = ""
  386. For i As Integer = (疏文頁數 - 1) * 44 To (疏文頁數 - 1) * 44 + 43
  387. If i = (疏文頁數 - 1) * 44 Then : 說文內文 = 疏文單行內容(i) : Else : 說文內文 += vbCrLf & 疏文單行內容(i) : End If
  388. Next
  389. myExcel.Selection.ShapeRange.TextFrame2.TextRange.Font.Size = 28
  390. myExcel.Selection.ShapeRange.TextFrame2.Orientation = 6 '4
  391. myExcel.Selection.ShapeRange.TextFrame2.TextRange.ParagraphFormat.Alignment = 7
  392. myExcel.Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = 說文內文
  393. myExcel.Selection.ShapeRange.Line.Visible = 0
  394. End Sub
  395. End Class