 |
|
VB.Net ผมมีปัญหารูปแบบ Date วันที่ใน DataGridView เปลี่ยนเป็น ภาษาอังกฤษ หลังจากออก Excel แล้วครับ |
|
 |
|
|
 |
 |
|
ปัญหาตามรูปเลยครับพอกดปุ่มออก excel แล้ว จะเป็นแบบนั้น

โค้ดในปุ่มครับ
Code (VB.NET)
For i = 1 To 10000
frmShowProgress.ProgressBar1.Value = i
If i = frmShowProgress.ProgressBar1.Maximum / 2 Then
If a = 6 Then
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim datestr As String = Now.ToString("yyyyMMddHmmss")
Dim tmpRpt As String = System.Windows.Forms.Application.StartupPath & "\ReportTmp\Qry\tmpQry.xls"
Dim newRpr As String = tmpRpt
xlApp = New Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Open(newRpr) 'เปิดรายงาน
xlWorkSheet = xlWorkBook.Worksheets("sheet1")
Dim countCol As Integer = DgvAllSupport.ColumnCount
Dim countRow As Integer = DgvAllSupport.RowCount
xlWorkSheet.Range("A2").Value = "ลำดับ"
'เพิ่ม เส้นขอบในเซลล์
xlWorkSheet.Range("A2").Borders(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range("A2").Borders(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range("A2").Borders(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range("A2").Borders(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlBorderWeight.xlHairline
dlg_ProgressTo7.Show()
dlg_ProgressTo7.ProgressBar1.Value = 0
dlg_ProgressTo7.ProgressBar1.Maximum = countRow
dlg_ProgressTo7.txtStatus.Text = "กำลังใส่ลำดับ"
For CountNo = 1 To countRow
xlWorkSheet.Range("A" & CountNo + 2).Value = CountNo
'เพิ่ม เส้นขอบในเซลล์
xlWorkSheet.Range("A" & CountNo + 2).Borders(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range("A" & CountNo + 2).Borders(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range("A" & CountNo + 2).Borders(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range("A" & CountNo + 2).Borders(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlBorderWeight.xlHairline
dlg_ProgressTo7.ProgressBar1.Value = CountNo
dlg_ProgressTo7.Refresh()
Next CountNo
dlg_ProgressTo7.ProgressBar1.Value = 0
dlg_ProgressTo7.ProgressBar1.Maximum = countCol
For coli = 1 To countCol
Dim colname As String
colname = Choose(coli, "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", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BK", "BL", "BM", "BN", "BO", "BP", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BX", "BY")
xlWorkSheet.Range("A1").Value = Me.Text
xlWorkSheet.Range(colname & 2).Value = DgvAllSupport.Columns.Item(coli - 1).HeaderText
'เพิ่ม เส้นขอบในเซลล์
xlWorkSheet.Range(colname & 2).Borders(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range(colname & 2).Borders(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range(colname & 2).Borders(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range(colname & 2).Borders(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlBorderWeight.xlHairline
For rowi = 0 To countRow
Try
xlWorkSheet.Range(colname & rowi + 2).Value = DgvAllSupport.Rows(rowi - 1).Cells(coli - 1).Value.ToString
'เพิ่ม เส้นขอบในเซลล์
xlWorkSheet.Range(colname & rowi + 2).Borders(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range(colname & rowi + 2).Borders(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range(colname & rowi + 2).Borders(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlBorderWeight.xlHairline
xlWorkSheet.Range(colname & rowi + 2).Borders(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlBorderWeight.xlHairline
Catch ex As Exception
'MsgBox(ex.Message)
End Try
dlg_ProgressTo7.txtStatus.Text = "กำลัง Export ข้อมูล (คอลัมน์ที่ " & coli & " / " & countCol & " แถวที่ " & rowi & " / " & countRow & ")"
Next rowi
dlg_ProgressTo7.ProgressBar1.Value = coli
Next coli
MessageBox.Show("ทำการ Copy ข้อมูลทั้งหมดไปยังไฟล์ Excel เรียบร้อยแล้ว", "การทำงานเสร็จสิ้น", MessageBoxButtons.OK, MessageBoxIcon.Information)
xlApp.Visible = True
End If
End If
Next
Tag : .NET, Excel (Excel.Application), VB.NET, Windows
|
|
 |
 |
 |
 |
Date :
2014-09-05 09:14:06 |
By :
zarooman |
View :
1998 |
Reply :
13 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
'System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim datestr As String = Now.ToString("yyyyMMddHmmss", New System.Globalization.CultureInfo("en-US")) '<-- แก้
|
 |
 |
 |
 |
Date :
2014-09-05 09:35:07 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้แล้วครับขอบคุณครับผม
เปลี่ยน
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
เป็น
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("th-th")
|
 |
 |
 |
 |
Date :
2014-09-05 09:52:22 |
By :
zarooman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2014-09-05 09:57:05 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วมันไม่กระทบกับโค้ดตรงนี้เหรอ
Dim datestr As String = Now.ToString("yyyyMMddHmmss")
นึกว่าที่เปลี่ยนเป็น us เพราะต้องใช้ซะอีก
เพราะดูแล้ว default น่าจะเป็น th อยู่ เห็นเปลี่ยนนึกว่าใช้
ถ้าไม่ใช่ก็ remark ทิ้งไปก็ได้นะ
|
 |
 |
 |
 |
Date :
2014-09-05 10:36:11 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เครื่อง User หลายเครื่องครับ บางเครื่องฟอร์แมตไม่เหมือนกันอะครับ เลยต้องเปลี่ยน กันเหนียวไว้
ส่วน Dim datestr As String = Now.ToString("yyyyMMddHmmss") จะเป็นรูปแบบการตั้งค่าที่เราเปลี่ยนด้านบนไม่ใช่หรอครับ
|
 |
 |
 |
 |
Date :
2014-09-05 10:43:48 |
By :
zarooman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
งั้นลองโค้ดเราสิ จะได้เปลี่ยนเฉพาะ string ตรงนั้น
ไม่ต้องเป็น culture ทั้งโปรแกรม
|
 |
 |
 |
 |
Date :
2014-09-05 11:09:43 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แต่ถ้าต้องการกำหนด culture ก็กำหนดที่ event load ก็ได้
มากำหนดตรงตอน click ปุ่มมันยังไงๆ อยู่
|
 |
 |
 |
 |
Date :
2014-09-05 11:12:00 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับผม
|
 |
 |
 |
 |
Date :
2014-09-05 11:34:46 |
By :
zarooman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 7 เขียนโดย : ห้ามตอบเกินวันละ 2 กระทู้ เมื่อวันที่ 2014-09-05 11:12:00
รายละเอียดของการตอบ ::
Code
คุณคิดว่าผมควรจะใช้ภาษาอะไรดีในการพัฒนาโปรแกรม อทิเช่น VB/C#/JAVA/etc
Jquery/JavaScript/etc...
Code (VB.NET)
Dim strJS As New StringBuilder() 'Tricks ---> LINQ CData
strJS.Append(" function pageLoad() {")
strJS.Append(" $(document).on('keyup', function (event) {")
strJS.Append(" var kc = window.event ? event.keyCode : event.which;")
strJS.Append(" if (kc == 27) {")
strJS.Append(" var tmp = $find('" & Me.OldSexClientID & "');")
strJS.Append(" if (tmp) {")
strJS.Append(" tmp.hide();")
strJS.Append(" }")
strJS.Append(" }")
strJS.Append(" });")
strJS.Append(" }")
strJS.Append("")
strJS.Append(" function LookupTab2Sex(tabType, obj1, tabSubcode, event) {")
strJS.Append(" var p = window.event ? event.keyCode : event.which;")
strJS.Append(" if (p == 9) { return true; }")
strJS.Append(" var lblPart_Desc = $(obj1).closest('.PartCode').parent().find('.PartName')[0];")
strJS.Append(" var key = tabType + obj1.value.toUpperCase() + tabSubcode;")
strJS.Append(" $('#divProgressMst').show();") 'ทำรูปหมุนติ้ว (.GIF, .SEX) แหกตาไปอย่างนั้นแหละ
strJS.Append(" NOT WCF/Web Service.GetBasicDataTab(key, PrdSucCallback, PrdFailCallback, lblPart_Desc);")
strJS.Append(" }")
strJS.Append("")
strJS.Append(" function PrdSucCallback(result, obj) {")
strJS.Append(" obj.innerHTML = result ? result : 'not found.';") 'IE-OK, FireFox-OK, Chrome-OK
strJS.Append(" $('#divProgressMst').hide();")
strJS.Append(" }")
strJS.Append("")
strJS.Append(" function PrdFailCallback(result, obj) {")
strJS.Append(" $('#divProgressMst').hide();")
strJS.Append(" }")
ScriptManager.RegisterStartupScript(upn, upn.GetType(), New Guid().ToString() + "ผมหน้าหอย", strJS.ToString(), True) '
strJS.Clear()
strJS.Append(" $(document).ready(function () {")
strJS.Append(" $('#ControlID_String').text('Value Text');")
strJS.Append(" });")
|
ประวัติการแก้ไข 2014-09-05 13:16:12
 |
 |
 |
 |
Date :
2014-09-05 13:15:22 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
บรรทัดที่ 20 คุณลองสังเกตุดูดีดีนะครับ
ผมไม่ได้ใช้ WCF/Web Service/etc...
Code (VB.NET)
strJS.Append(" NOT WCF/Web Service.GetBasicDataTab(key, PrdSucCallback, PrdFailCallback, lblPart_Desc);")
ปล. ผมตั้งใจว่าจะดึงข้อมูลมาจาก All Matchine แบบ Real time. (คิดได้แต่ผมยังไม่รู้ว่าจะต้องทำอย่างไร?ป
|
 |
 |
 |
 |
Date :
2014-09-05 13:27:27 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทดสอบความทรงจำ ASP.NET Repeater ข้อมูลมันจะหายไปเมื่อ PostBack (Item.DataItem IS NULL)
Code (VB.NET)
Private Sub rtorABC_ItemCreated(sender As Object, e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rtorABC.ItemCreated
'*****Fixed Bug's Item.DataItem ARE ALL NULL When PostBack.*******
If ((e.Item.ItemType = ListItemType.Item) OrElse (e.Item.ItemType = ListItemType.AlternatingItem)) Then
Dim txtPart_NO As HtmlInputText = DirectCast(e.Item.FindControl("txtPart_NO"), HtmlInputText)
If txtPart_NO IsNot Nothing Then
txtPart_NO.Attributes.Add("Hacks", "อะไรก็ได้")
End If
End If
End Sub
TextBox มัน Hacks ได้ แล้วถ้าเป็น Label/Select/อื่นฯ ล่ะ ต้องทำอย่างไร?
ปล. ผมถามคุณกลับในกรณีนี้ Advance (มีน้อยคนนักที่จะทำได้ ผมก็ยังทำไม่ได้ครับ)
|
ประวัติการแก้ไข 2014-09-05 13:43:42
 |
 |
 |
 |
Date :
2014-09-05 13:42:32 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คุณคิดเหมือนผมไหมครับ บางคน/หลายฯคน
แค่เขียน Jquery/JavaScript
ก็แทบจะตายห่าแล้ว(มั้ง) +55555    
ความหมายเดียวกันกับการเขียน Jquery/JavaScript/PHP บน HTML ธรรมดาธรรมดา มันธรรมดาจริงฯสมชื่อ
|
ประวัติการแก้ไข 2014-09-05 13:52:56
 |
 |
 |
 |
Date :
2014-09-05 13:50:46 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|