วันอังคารที่ 18 มีนาคม พ.ศ. 2557

[ASP.NET C#] Export exel file

สวัสดีครับทุกท่าน สำหรับใครที่ใช้ C# ASP.Net เขียนเว็บก็อาจจะมีงานที่ต้องไปเชื่อมต่อกับ Database ซึ่งบางครั้งเราก็ต้องการ export ข้อมูลนั้นๆ ออกมาเป็นไฟล์ ซึ่งวันนี้เราจะมาลอง export file exel กันนะครับ

ก่อนอื่นเราจะ export ออกมาเป็น exel โดยเราจะเอา string ไป export ซึ่ง string นั้นต้องสร้างมาจาก table html ก่อน

 string content = "<html><body><table><tr><td>Head1</td><td>Head2</td></tr><tr><td>data1</td><td>data2</td></tr></table></body></html>";  

จะสังเกตว่าจะมี table โดยประกอบด้วย 2 row 2 colum จะได้แบบนี้ครับ

                                                                       Head1              Head2
                                                                       data1                data2

ต่อมาเราจะทำส่วนของการสร้างไฟล์เพื่อให้ดาวน์โหลดกันนะครับ
1:  Response.Clear();  
2:  Response.AddHeader("Content-Disposition", "attachment;filename=myexel.xls");  
3:  Response.ContentType = "application/vnd.xls";  
4:  Response.Cache.SetCacheability(HttpCacheability.NoCache); // not necessarily required  
5:  Response.Charset = "";  
6:  Response.Output.Write(content);  
7:  Response.End();  

บรรทัดที่ 2 ตรง filename คือที่ระบุชื่อไฟล์ output ของเราครับ ผมตั้งไว้ว่า myexel
บรรทัดที่ 6 ให้เรานำตัวแปร string content ของเราใส่ไว้ใน Write(content)

เสร็จแล้วครับ ง่ายมั้ยครับ เพียงแค่เราเอา Code ด้านบนไปวางไว้ใน Button เวลาเรากดปุ่มจะดาวน์โหลด Browser จะโหลดไฟล์ exel ลงเครื่อง


นี่คือไฟล์ exel ที่เราได้ออกมาครับ


วันจันทร์ที่ 17 มีนาคม พ.ศ. 2557

[Android] Share ข้อความ String ด้วย Action Send

สวัสดีครับทุกท่าน นอกจากการใช้ API ของตัว Social นั้นๆ แล้ว ยังมีอีกวิธีนึงที่เราจะแชร์รูปหรือแชร์ข้อความออกไปได้โดยผ่าน Activity นั้นก็คือ Action Send

จุดประสงค์ของครั้งนี้
1. สร้างปุ่ม Share ขึ้นมา เมื่อกดปุ่มแชร์ส่งข้อความหรือรูปออกไป
2. แชร์ข้อความ String ตัวข้อความผมขอกำหนดเองเลยนะครับ เราสามารถใช้ช่อง Text input ได้เหมือนกัน แต่เพื่อความสะดวกครับ
3. แชร์รูป โดยผมจะแชร์ Image รูปสุดท้ายใน Album (เพื่อความสะดวกของผม)

เริ่มแรกเราต้องสร้าง XML ไฟล์สำหรับใส่ปุ่มของเราก่อนนะครับ อันนี้ผมใช้ activity_main.xml ที่ได้จากการ New Project เลย

activity_main.xml
1:  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
2:    xmlns:tools="http://schemas.android.com/tools"  
3:    android:layout_width="match_parent"  
4:    android:layout_height="match_parent"  
5:    tools:context=".MainActivity" >  
6:    <Button  
7:      android:id="@+id/main_share"  
8:      android:layout_width="wrap_content"  
9:      android:layout_height="wrap_content"  
10:      android:layout_centerVertical="true"  
11:      android:layout_centerHorizontal="true"  
12:      android:layout_below="@+id/main_take"  
13:      android:onClick="onShare"   
14:      android:text="Share" />  
15:  </RelativeLayout>  
สังเกตว่าผมใส่ android:onClick="onShare" เอาไว้ เราจะเอาไว้ใส่ function เมื่อกดปุ่มกัน
เราจะได้ layout ออกมาแบบนี้นะครับ
ต่อมาเราจะมาส่งข้อความ String กันนะครับ โดยเราจะทำกันในส่วนของ Java Code ซึ่งผมจะใช้เป็น MainActivity.java ที่ได้มาตั้งแต่ตอนสร้าง Project นะครับ

เราจะส่งแชร์ข้อความโดยเริ่มสร้าง Intent ของ Action_send ก่อนครับ

 final Intent share = new Intent(Intent.ACTION_SEND);  
จากนั้นเราก็กำหนด ชนิดของ object ที่เราจะส่งออก ซึ่ง "text/plain" คือเราจะส่งออกเป็น text

 share.setType("text/plain");  

สุดท้ายเราจะใส่ String ของเรา
 share.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");  

"This is my text to send." คือ String ที่ผมจะส่งออกไปครับ เราสามารถเปลี่ยนเป็นชื่อของตัวแปรแทนได้
เราจะได้ไฟล์ MainActivity.java ดังนี้

MainActivity.java
1:  public class MainActivity extends Activity {  
2:   @Override  
3:   protected void onCreate(Bundle savedInstanceState) {  
4:    super.onCreate(savedInstanceState);  
5:    setContentView(R.layout.activity_main);  
6:   }  
7:      public void onShare(View v)  
8:   {  
9:          final Intent share = new Intent(Intent.ACTION_SEND);  
10:          share.setType("text/plain");  
11:    share.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");  
12:          final String chooserTitle = "Share Snaphot";  
13:     MainActivity.this.startActivity(Intent.createChooser(share, chooserTitle));  
14:     } catch (final Exception e) {  
15:      Log.d("MyShare","Error");  
16:     }  
17:   }  
18:  }  

บรรทัดที่ 7 คือชื่อฟังก์ชั่นที่เราใส่ไว้ใน xml
บรรทัดที่ 9 คือ Intent Action Send ที่เราสร้างขึ้นมา
บรรทัดที่ 13 คือสร้างตัวเลือกเป็น Popup ขึ้นมา

เมื่อเรากดปุ่ม Share จะได้รูปแบบด้านล่าง
ซึ่งตัวเลือกของมือถือแต่ละเครื่องจะแตกต่างกัน List ที่ขึ้นมาจะเป็น Application ที่ติดตั้งอยู่ในมือถือของเรา

เสร็จแล้วครับการส่ง String ด้วย Intent Action Send ครั้งหน้าเราจะแชร์รูปกันนะครับ