วันเสาร์ที่ 28 กันยายน พ.ศ. 2556

ep3 python : python กับ excel กลับไปใช้ openpyxl อย่างเดิมดีกว่า

ตอนก่อน เราลองใช้ xlrd กับ xlwt ปรากฏว่า อันนี้อ่านอย่างเดียวเลย อีกอันก็สร้างและเขียนอย่างเดียวเลย เอามา balance ไม่ได้ จึงกลับไปลองใช้ openpyxl อย่างเดิม มาสรุปข้อดีและข้อเสียของทั้งคู่ดีกว่า

xlrd, xlwt
(+) อ่านเขียนไฟล์ได้ดี, รองรับหลาย file platform, รวดเร็ว
(-) ทำหน้าที่อ่านอย่างเดียวหรือเขียนอย่างเดียว ทำร่วมกันไม่ได้, ไม่สามารถก็อป style ของ cell ต่างๆได้ (หาไม่เจอว่าใช้คำสั่งไหน)

openpyxl
(+) อ่านและเขียนได้อย่างดูดี, สามารถก็อป style ของ cell ต่างๆได้
(-) ทำงานช้ามากๆจนอืดในบางคำสั่ง, แอบถมดำบาง cell ให้เราโดยไม่ได้สั่งมัน

ดังนั้น จึงกลับไปใช้ openpyxl ทำ assignment นี้ต่อไป ......

ได้ศึกษาโดยการถามกู๋ และเข้าไปดูตามเว็บต่างๆ มีตัวอย่างที่น่าสนใจ เช่น

http://stackoverflow.com/questions/14684312/issue-with-creating-xlsx-in-python-by-copying-data-from-csv

copy data cell จาก .csv file โดยสรุป code เป็นดังนี้

from openpyxl import load_workbook
import csv

wb = load_workbook("empty_book.xlsx") #สร้าง excel ใหม่เองข้างนอก แล้วค่อยเรียกใช้นะคะ
ws = wb.create_sheet(index = 1, title="auto_check") #สร้าง sheet ใหม่

 #เปิดไฟล์ csv ออกมาอ่าน ใช้คำสั่งนี้จะปลอดภัยเพราะหมดคำสั่งช่วงนี้จะปิดไฟล์ให้เราเอง
with open("checklist.csv",'rb') as fin:
  reader = csv.reader(fin)
  for rowx,row in enumerate(reader):
    for colx, value in enumerate(row):
      #ให้ row = ?, column = ?? มีค่าเท่าไหร่
      ws.cell(row=rowx,column=colx).value = unicode(value, "mbcs")
wb.save("empty_book.xlsx")

วิธีการนี้ แก้อาการอืดได้ดี ทำงานไวด้วยหล่ะ แต่... csv file จะไม่รับ format นะจ๊ะ ก็อปสี แบบอักษร บลาๆไม่ได้

กลับไปลองใช้ openpyxl ตามเดิมดู โดยให้ ws_old เป็นต้นฉบับที่เราจะก็อป และ ws_new เป็นอันใหม่ที่จะเขียนลงไป ขอตัด code มาตรงนี้เลยนะคะ

RowCnt = 0
for row in ws_old.range('A1:S253'):
  Cr = row[2].value
  print Cr
  ColCnt = 0
  for cell in row:
    ws_new.cell(row=RowCnt, column=ColCnt).value               = cell.value
    ws_new.cell(row=RowCnt, column=ColCnt).style.font          = cell.style.font
    ws_new.cell(row=RowCnt, column=ColCnt).style.fill          = cell.style.fill
    ws_new.cell(row=RowCnt, column=ColCnt).style.borders       = cell.style.borders
    ws_new.cell(row=RowCnt, column=ColCnt).style.alignment     = cell.style.alignment
    ws_new.cell(row=RowCnt, column=ColCnt).style.number_format = cell.style.number_format #custom
    ws_new.cell(row=RowCnt, column=ColCnt).style.protection    = cell.style.protection
    ColCnt += 1
  RowCnt += 1

wb.save("C:/Python27/empty_book.xlsx")

สามารถทำงานได้ดี อยู่ที่ไฟล์ excel เราว่าใหญ่ขนาดไหน ถ้าไฟล์เล็กๆ จะทำงานได้เร็ว และไม่ค้างอีกด้วย
ซึ่ง code ตัวอย่างนี้ มี concept คร่าวๆ ดังนี้

ตัวอย่างอื่นๆเพิ่มเติม
เขียน excel file ด้วย xlwt
python-excel-mini-cookbook
csv File reading and writing
การใส่สีให้แต่ละ cell

วันนี้ก็ได้ความรู้เพิ่มเติมกันไปแล้วนะคะ สำหรับ excel กับ python นะคะ คราวหน้ามีอะไรติดตามชมได้คะ :)

ป้ายกำกับ: ,

วันพฤหัสบดีที่ 26 กันยายน พ.ศ. 2556

iPad เพื่อการศึกษา by MikkiPastel

วันนี้มานำเสนอการใช้ประโยชน์ของไอแพด ที่คุณอาจจะคาดถึง และไม่ถึงก็ตาม

นอกจากเล่นเกม social network ยังมีมากกว่านี้ คือ การเป็นกระดานวาดรูป และการเป็นสื่อเรียนรู้ เยี่ยงแท็บเล็ท ป.1 นั่นคือการใช้ iTune U ในการหาความรู้นอกห้องเรียน สำหรับเราใช้ในคอม ซึ่งมีบทเรียนมากมาย เช่น สอนทำ app iOS ของ stanford, เรียนภาษาอังกฤษกับ British Council, เรียนทำขนม โน้นนี่ อีกมากมาย ที่สำคัญ ฟรีด้วย


บทเรียนภายใน ประกอบด้วยตัวเอกสาร หรือ Transcript และ ตัวไฟล์เสียงหรือวิดีโอ ประกอบการเรียนนอกห้องเรียน


ตัวช่วยหนึ่งในการเรียนภาษาอังกฤษ คือ Podcasts นี่เอง อย่างของ BBC เองก็มีเยอะ ฟังเพื่อพัฒนาภาษาอังกฤษตัวเอง (ว่าฟังออกยัง รู้เรื่องไหมมมมม)


มีเร่ง ตั้งปลุกได้ด้วยนะ


iBook โหลดฟรีทั้ง app ทั้งหนังสือ คำไหนไม่เข้าใจ จิ้มค้างไว้ เลือก define ก็จะมีคำแปล แบบ eng-eng มาเพื่อประกอบความเข้าใจ


ตอนนี้มี app เสริมสร้างการเรียนรู้โดยเฉพาะภาษาอังกฤษเพียงเท่านี้ ใครมีอะไรเพิ่มเติมมาได้ใน comment หรือใน page ก็ได้นะคะ ลากันไปก่อนนะคะ สวัสดีคะ

ป้ายกำกับ:

วันเสาร์ที่ 21 กันยายน พ.ศ. 2556

ep2 python : python กับ excel

เนื่องจากงาน ต้องเขียน python กับ excel

จึงต้องมีพื้นฐาน python ก่อน และนำมาเขียนกับ excel โดยมี library ที่น่าสนใจ

เริ่มที่ตัวแรกเลยคะ openpyxl เป็นตัวมาตรฐานที่ลองเขียนดู ทำงานร่วมกับ excel 2007 (.xlsm.xlsx) มันก็ง่ายนะ แต่พอลองเล่นสักแปป เริ่มเกิดปัญหา ทำงานแลดูช้าไปบ้าง ตรงที่ cell ลงสีสวยๆ ปรากฏว่าถมดำให้อิชั้นโดยไม่ได้สั่งสักนิด T^T จึงต้องขยับขยาย หาตัวต่อไป

ตัวอย่างการใช้งาน openpyxl กับ excel และตัวอย่างโค้ดเบื้องต้น ให้ลองอ่านกันก่อนนะคะ

---------------------------------------------------------------------------------------------------

library นี้ ได้ลายแทง มาจากกรุ๊ปคนเขียน python โดยมีสมาชิกท่านหนี่ง ได้ถามไว้พอดี เลยไปลองดู ตามรูปนี้



library ที่ว่านี้ คือ xlwt ทำงานกับ excel 2003 openoffice ด้วย และหลายๆ platform กว่าตัวแรก ซึ่งต้องดูว่า จะโอเคมากแค่ไหนนนนนนน

(ตัวอื่นๆ สามารถส่องได้ตาม http://www.python-excel.org/ คะ)

การ install ให้เปิด command line ไปที่ folder ของ python -> cd Python27/Script
ซึ่งตัว easy_install จะอยู่ในนั้นพอดี
จากนั้น พิมพ์ easy_install xlwt เพื่อทำการลง library xlwt พอลงเสร็จ ค่อยเปิด shell ของ python ขึ้นมา

การใช้งานเบื้องต้น มีประมาณนี้แหละ และดูอ่านเข้าใจยากสักนิด

ลองมา coding กันดีกว่า ตามตัวอย่างนี้เลย

>>> import xlwt
>>> workbook = xlwt.Workbook()
>>> worksheet = workbook.add_sheet('Statistics')
>>> for x in range(0, 10):
for y in range(0,10):
worksheet.write(x,y,x*y)


>>> workbook.save('statistics.xls')
ที่มา : http://codingtutorials.co.uk/python-excel-xlrd-xlwt/

สำหรับวันนี้ แค่นี้ก่อนนะคะ เดี๋ยวมาต่อสำหรับเนื้อหา python และ excel นะคะ ทื้งลายแทงให้ก่อนนะคะ

ป้ายกำกับ: ,

วันพฤหัสบดีที่ 19 กันยายน พ.ศ. 2556

ep1 python : academy fantasia เอ้ยยย codecademy

สวัสดีทุกท่านนะคะ วันนี้ มีเว็บมาแนะนำ คือ http://www.codecademy.com เป็นเว็บที่สอนเขียนโปรแกรมที่เข้าใจง่าย แค่อ่านภาษาอังกฤษพอได้ เท่านั้นพอ สอนตั้งแต่พื้นฐานเลย

ข้อดี คือ ให้เราปฏิบัติจริงเลย อ่านบทเรียน และมีแบบฝึกหัดให้ทำเดี๋ยวนั้นเลย
ข้อเสีย คือ ต้องต่อเน็ต และตัว compiler อาจจะดูงงๆว่าผิดตรงไหนหว่า แต่มี Q&A forum ช่วยไว้ เพราะคนติดก็มีเยอะเช่นกัน

เว็บนี้สอนภาษาอะไรบ้าง จิ้มตามลิ้งข้างล่างเลยจ้าา ก็อปเอาจากเว็บ




เราเรียน Python ก่อน เพราะเราต้องเขียนโปรแกรม Python ในที่ทำงาน ซึ่งอ่านจาก http://docs.python.org/2/tutorial/ ก็ไม่ใช่ว่าจะเข้าใจทั้งหมด เพราะขาดการลงมือทำ ให้เข้าใจถ่องแท้ และมีแต่ตัวอย่างง่ายๆเท่านั้น เว็บนี้จึงเป็นทางเลือกที่ดีในการเริ่มเขียนโปรแกรมภาษาใหม่ๆ

มาถึงเจ้า Python กันบ้าง ข้อดีคือ มันรันทีละบรรทัด ถ้ามันมี error จะทำงานไปจนถึงบรรทัดที่เป็นปัญหา ถ้าเป็นภาษาอื่น จะรันไม่ได้เพราะติด error และสามารถนำไปใช้กับเจ้า Raspberry Pi ที่นอนนิ่งอยู่ในกล่องได้ด้วย TT (ทำงาน 5 วัน ไม่ค่อยมีเวลาเล่นเท่าไหร่)

เมื่อจบแต่ละบท จะมีธงให้ด้วย เก็บแต้มได้ด้วย แต้มได้มาจากทำแบบฝึกหัดผ่าน เข้าหน้าเว็บ

บทเรียน python มีดังนี้ (ขอก็อปมาแปะนะคะ T^T) ซึ่งเจ้าของบล็อกได้เรียนครบทุกบทแล้วคะ


Python Syntax

Python Syntax
This tutorial will introduce you to Python, a general-purpose, object-oriented interpreted language you can use for countless standalone projects or scripting applications.

Tip Calculator
Now that you've completed the lesson on Python syntax, let's see if you can put your newfound skills to use. In this project, you'll create a simple calculator that determines the price of a meal after tax and tip.

Strings and Console Output

Strings & Console Output
This course will introduce you to strings and console output in Python, including creating string literals, calling a variety of string methods, and using the "print" keyword.
Date and Time
This project is a follow up to Unit 2: Strings and Console input and will give you practice with the concepts introduced in that course.

Conditionals and Control Flow

Conditionals & Control Flow
In this course, we'll learn how to create programs that generate different outcomes based on user input!
PygLatin
In this project we'll put together all of the Python skills we've learned so far including string manipulation and branching. We'll be building a Pyg Latin translator. (That's Pig Latin for Python Programmers!)

Functions

Functions
A function is a reusable section of code written to perform a specific task in a program. We gave you a taste of functions in Unit 3; here, you'll learn how to create your own.

Taking a Vacation
Hard day at work? Rough day at school? Take a load off with a programming vacation!

Lists & Dictionaries

Python Lists and Dictionaries
Lists and dictionaries are powerful tools you can use to store, organize, and manipulate all kinds of information.

A Day at the Supermarket
Let's manage our own supermarket and buy some goods along the way!

Student Becomes the Teacher

Student Becomes the Teacher
Use what you've learned so far to manage your own class.

Lists and Functions

Lists and Functions
Now that you've learned about lists, let's turbo-charge them with functions.

Battleship!
In this project we will make a simplified version of the classic board game Battleship! We'll use functions, lists, and conditionals to make our game.

Loops

Loops
Loops allow you to quickly iterate over information in Python. In this lesson, we'll cover two types of loop: 'while' and 'for'.

Practice Makes Perfect
You know a lot of Python now. Let's do some practice problems!

Exam Statistics

Exam Statistics
Your students just took their first test. It's time to see how everyone did. Let's write a program to compute the mean, variance, and standard deviation of the test scores.

Advanced Topics in Python

Advanced Topics in Python
In this lesson, we'll cover some of the more complex aspects of Python, including iterating over data structures, list comprehensions, list slicing, and lambda expressions.

Introduction to Bitwise Operators
Bitwise operations directly manipulate bits—patterns of 0s and 1s. Though they can be tricky to learn at first, their speed makes them a useful addition to any programmer's toolbox

Introduction to Classes

Introduction to Classes
Classes are a crucial part of object-oriented programming (OOP). In this course, we'll explain what classes are, why they're important, and how to use them effectively.

Classes
Make your own Car and learn how to driveCar()!

File Input and Output

File Input/Output
Now that you understand Python syntax and have been introduced to some Python best practices, let's apply what you've learned to a real-world application: writing data to a file.

เมื่อเรียนครบแล้ว ยังมีหัวข้ออื่นๆให้เรียนอีก ตามลิ้งนี้เลยคะ http://www.codecademy.com/courses/lang/python?filter_by_levels=all&filter_by_locales=en

และยังมี group ให้เข้าไปส่องด้วยหล่ะ ทั้งเรื่อง programming และเรื่องอื่นๆอีกด้วย

-----------------------------------------------

สำหรับวันนี้ แนะนำเรื่อง codecademy ก่อนคะ คราวหน้าจะมาเรื่องเขียนโปรแกรมจริงจังแล้วคะ

ป้ายกำกับ: ,

วันเสาร์ที่ 7 กันยายน พ.ศ. 2556

ติดตั้ง Theme Line น้องเพี้ยน สำหรับ Android

สวัสดีวันศุกร์คะ มาอัพเดตของเล่นใหม่นิดนึง อุอิๆ นั่นคือ ธีมน้องเพี้ยน จากพันทิปคะ

ธีมไลน์พันทิปทำได้สวยโดนใจ จนเราโหลดมาอันนึง คือ ธีมน้องเพี๊ยนคะ

เลือกโหลดจากลิ้งนี้ก่อนคะ http://pantip.com/content/line/themes

จากนั้นมาดูวิธีการโหลดของแอนดรอยด์ http://pantip.com/topic/30866070

โหลดเสร็จแล้ว ทำยังไงต่อ

เตรียมสาย usb ที่ต่อระหว่างคอมกับมือถือคะ ถ้า connect กันได้ ถือว่าโอเคคะ

แล้วให้มือถือเรา เชื่อมกับคอม โดยเลื่อน notification ลงมา กด usb connect แล้วกดปุ่ม OK แล้วรอให้น้องหุ่นเขียวเป็นหุ่นส้ม จากนั้นเข้าไปในคอม เปิดdrive usb ของมือถือขึ้นมา

จากนั้นเข้า folder\Android\data\jp.naver.line.android\theme\a0768339-c2d3-4189-9653-2909e9bb6f58

แล้ว copy themefile เดิมของ cony มาเก็บไว้ก่อน เผื่อเปลี่ยนกลับเป็นน้อง cony 

และเอา themefile มา copy ทับไฟล์เดิม 

จากนั้นเปิด Line เลือกธีม Original ให้โปรแกรม Line restart จากนั้นมาเลือกธีม cony แล้วก็ได้ธีมน้องเพื้ยนสมใจคะ

ลองทำดูนะคะ ไม่ยากเลยเนอะ :)

ป้ายกำกับ: