Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > vb.net กับการออก report เป็น excel เรือ่งการตรวจสอบการขึ้นเพจใหม่ และอื่นๆค่ะ



 

vb.net กับการออก report เป็น excel เรือ่งการตรวจสอบการขึ้นเพจใหม่ และอื่นๆค่ะ

 



Topic : 049751



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์




คือใช้ vb.net เขียนออกรายงานเป็น excel

แล้วติดปัญหาดังนี้
****1. ไม่สามารถตรวจสอบได้ว่า หมดหน้ากระดาษแล้ว แล้วขึ้นหน้าใหม่ เพื่อจัดการในเรื่องของรูปแบบการแสดงผล (ทุกครั้งที่ขึ้นหน้าใหม่ จะต้องแสดงหัวตารางซ้ำ แต่มีข้อมูลท้ายกระดาษด้วย ถ้ากำหนดหัวตารางตายตัวอาจจะแสดงผลผิด)
2. สังเกตว่าการวาดเส้นตารางทำให้การทำงานช้ามาก
ใช้โค้ดในการวาดเส้นประมาณนี้
Code (VB.NET)
      With xlSheet1.Range("A" & x & ":K" & y)
            .Borders(Excel.XlBordersIndex.xlDiagonalDown).LineStyle = Excel.XlLineStyle.xlLineStyleNone
            .Borders(Excel.XlBordersIndex.xlDiagonalUp).LineStyle = Excel.XlLineStyle.xlLineStyleNone
            With .Borders(Excel.XlBordersIndex.xlEdgeLeft)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .Weight = Excel.XlBorderWeight.xlThin
                .ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic
            End With
            With .Borders(Excel.XlBordersIndex.xlEdgeTop)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .Weight = Excel.XlBorderWeight.xlThin
                .ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic
            End With
            With .Borders(Excel.XlBordersIndex.xlEdgeBottom)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .Weight = Excel.XlBorderWeight.xlThin
                .ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic
            End With
            With .Borders(Excel.XlBordersIndex.xlEdgeRight)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .Weight = Excel.XlBorderWeight.xlThin
                .ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic
            End With
            .Borders(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlLineStyleNone
            .Borders(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlLineStyleNone
        End With

3. ไม่ทราบว่าเป็นที่อะไรแต่ พอยุ่งอะไรกับ page setup MS excel จะพัง -*- (เช่น รอนานมากในการดูตัวอย่างก่อนพิมพ์ ทั้งๆที่ก่อนหน้าจะรันโค้ดนี้ก็ใช้งานได้ปกติดี) ทดสอบที่เครื่องอื่นแล้วไม่เป็น
ใช้โค้ดดังนี้
Code (VB.NET)
        xlSheet1.PageSetup.TopMargin = xlApp.Application.InchesToPoints(1.5)
        xlSheet1.PageSetup.LeftMargin = xlApp.Application.InchesToPoints(1.5)
        xlSheet1.PageSetup.RightMargin = xlApp.Application.InchesToPoints(1.0)
        xlSheet1.PageSetup.BottomMargin = xlApp.Application.InchesToPoints(1.0)



ขอคำแนะนำสำหรับปัญหาเหล่านี้ด้วยค่ะ



Tag : .NET, Excel (Excel.Application), Win (Windows App), VB.NET, VS 2005 (.NET 2.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-10-05 01:35:01 By : suth View : 4646 Reply : 9
 

 

No. 1



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


code ที่ใช้ interop จะเป็นการ activated excel มาทั้ง application แน่นอนว่าทำให้ช้าอยู่แล้วค่ะ

ถ้าเปลี่ยนใช้ crystal report แล้ว export เป็น excel จะสามารถกำหนด page ได้แม่นยำมากกว่าค่ะ

หรือ

ใช้ excel library แยกต่างหากสร้างไฟล์ Excel โดยไม่ยุ่งกับ Excel application น่าจะให้ผลลัพธ์ที่ดีกว่าเช่นกันค่ะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 02:47:43 By : blurEyes
 


 

No. 2



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์


คุณ Stupid girl คะ คือรายงานที่จะออกตัวนี้ ไม่สามารถใช้ crystal report ได้ค่ะ

ส่วนวิธีที่แนะนำ (ใช้ excel library แยกต่างหากสร้างไฟล์ Excel โดยไม่ยุ่งกับ Excel application )
ไม่รู้จัก - -" ช่วยขยายความ หรือยกตัวอย่างได้มั้ยคะ

ขอบคุณค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 03:16:30 By : suth
 

 

No. 3



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


1. CR : Crystal Report ทำไมใช้ไม่ได้คะ ในเมื่อคุณต้องการเป็น excel
ก้อทำปุ่ม export to excel เท่านั้นไม่จำเป็นต้องแสดงอะไรของ CR ออกมาเลย
วิธีทำรายงานก้อทำแบบ CR ปกติ เข้าใจง่ายๆว่า save as to excel ก็ได้ค่ะ
น่าจะเร็วกว่ามาก
code จะประมาณนี้

Code (VB.NET)
Imports CrystalDecisions.CrystalReports.Engine 
Imports CrystalDecisions.Shared

...
...

Dim rptExcel As New ReportDocument
Dim strExportFile As String = "D:/test/test.xls" 
rptExcel.Load("D:/report/test.rpt")) 
rptExcel.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile 
rptExcel.ExportOptions.ExportFormatType = ExportFormatType.Excel 
Dim objOptions As DiskFileDestinationOptions = New DiskFileDestinationOptions 
objOptions.DiskFileName = strExportFile 
rptExcel.ExportOptions.DestinationOptions = objOptions
rptExcel.Export() 
objOptions = Nothing 
rptExcel = Nothing



2. Excel library ตอนนี้ใช้ของ ASPOSE ค่ะเป็น commerce ware ส่วน opensource ที่ใช้ง่ายๆ ยังไม่ค่อยจะเห็นเท่าไหร่
(แต่ word มีแล้ว) ที่เห็นๆมี Open XML SDK 2.0 ในกรณี Excel Library เราจะ read/write/modify excel ไฟล์ได้เลย
โดยที่เครื่อง server ไม่จำเป็นต้องติดตั้ง MS EXCEL เลย ซึ่ง format cell /group ได้เหมือนกันกับ interop.excel ค่ะ
ส่วนตัวอย่างที่ output เป็น report แบบที่คุณต้องการเป๊ะๆยังไม่เห็นอะค่ะ ที่มีจะประมาณนี้

http://www.aspose.com/demos/.net-components/aspose.cells/csharp/business-reports/financial-plan.aspx

ตัว excel ถ้าเป็นงาน manual คงทำรายงานได้สวยงามแต่ถ้าใช้ report by programming น่าจะเป็น CR มากกว่าค่ะ
จะแม่นยำและตรงประเด็นมากกว่า


ประวัติการแก้ไข
2010-10-05 04:02:08
2010-10-05 04:05:24
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 04:00:58 By : blurEyes
 


 

No. 4



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์


สาเหตุที่ใช้ CR ไม่ได้เนื่องจากว่าเงื่อนไข และลักษณะข้อมูลที่ได้จากการ query ออกมาจาก database ค่อนข้างซับซ้อน
และเท่าที่ศึกษา CR คิดว่าไม่ยืดหยุ่นพอที่จะออก report ตัวนี้ได้ (เป็น report ลักษณะคล้ายๆแบบสอบถาม) จึงเปลี่ยนมา
ใช้ excel แทนค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 09:28:45 By : suth
 


 

No. 5



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ถ้าใช้ CR ไม่ได้หรือไม่อยากจะใช้จริงๆ ก้อตัดพวกเส้นต่างๆออกค่ะ ให้รายงานเสนอข้อมูลออกมาเท่าที่จำเป็น
ส่วนเรื่อง header กับ footer นี่ ในกรณี interop ที่คุณใช้น่าจะทรมานเครื่องมากเพราะไปยุ่งกับ config
ถ้าเลี่ยงไปใช้ excel library ได้จะเร็วค่ะ เดวจาลองดูให้นะคะว่ามีคัวไหนน่าใช้มั่ง


ประวัติการแก้ไข
2010-10-05 14:37:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 11:07:58 By : blurEyes
 


 

No. 6



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์


-v- ขอบคุณล่วงหน้าค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 14:36:26 By : suth
 


 

No. 7



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ถ้าเป็นการ export excel แบบเรียบๆคือไม่ตกแต่งอะไรจะมีหลายวิธีค่ะ
อย่าง

http://www.codeproject.com/KB/dotnet/ExportToExcel.aspx
exportToExcel(DataSet source, string fileName) << ใช้แค่ dataset กับ filename สองอย่าง
หรือ
http://www.codeproject.com/KB/aspnet/ExportClassLibrary.aspx
ถ้าจะ output พร้อม format ให้สวยๆ แล้วตัว data ซับซ้อนแบบที่คุณต้องการคงต้องใช้ interop
หรืออย่าง aspose.cell แล้วละค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 15:42:16 By : blurEyes
 


 

No. 8

Guest


ตอบความคิดเห็นที่ : 4 เขียนโดย : suth เมื่อวันที่ 2010-10-05 09:28:45
รายละเอียดของการตอบ ::
เราเอา Field ที่ต้องการ ทำเป็น dataset หรือ Property แล้วทำแบบนี้

http://9keng.wordpress.com/2007/02/26/aspnet-%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-crystal-report-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%87%E0%B9%88%E0%B8%B2%E0%B8%A2%E0%B9%86-%E0%B9%83%E0%B8%99-vs-2005/


report.SetDataSource(ค่าที่เรา คิวรี่ออกมาแล้ว)


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 19:52:05 By : ผู้ผ่านมา
 


 

No. 9



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : ผู้ผ่านมา เมื่อวันที่ 2010-10-05 19:52:05
รายละเอียดของการตอบ ::
ขอบคุณค่ะ แต่เท่าที่ดูคร่าวๆ คงไม่สามารถ ทำตามวิธีนี้ได้ เนื่องจากข้อมูลที่ถูก query ขึ้นมา จะมีลักษณะที่เป็นเงื่อนไข เลือกเฉพาะบางอันเท่านั้นในการแสดงผล ยกตัวอย่างเช่น

ผลการ query ได้เป็น


1 a aaa
2 a bbb
3 b ccc
4 b ddd
5 c eee

ให้แสดงผลเป็น


aaa
bbb
ccc
b
. ccc
. ddd
c
. eee


ประมาณนี้

ถ้าคอลัมภ์ที่ 1 มีค่าเป็น a ต้องการให้แสดงผลเฉพาะ คอลัมภ์ที่สองเท่านั้น ไม่ต้องการให้แสดงคอลัมภ์ที่ 1 โดยค่าของทั้งสองคอลัมภ์นี้
มาจากการจอย สองตารางค่ะ


ด้วยลักษณะเช่นนี้ จึงคาดว่า ไม่สามารถใช้ crystal report ได้ค่ะ






ประวัติการแก้ไข
2010-10-05 20:29:11
2010-10-05 20:29:59
2010-10-05 20:30:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 20:25:30 By : suth
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : vb.net กับการออก report เป็น excel เรือ่งการตรวจสอบการขึ้นเพจใหม่ และอื่นๆค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่