Đọc ghi file excel trong c++

1. Trước tiên chúng ta phải Add Reference COM Excel object vào ứng dụng:

Microsoft.Office.Interop.Excel

2. Kết nối với namespace:

using cExcel = Microsoft.Office.Interop.Excel;

3. Mở chương trình Excel:

cExcel.Application app = new cExcel.Application[];

4. Mở File Excel [*.xls] có sẵn:

Lưu ý: đường dẫn C:\test.xls phải tồn tại.
object valueMissing = System.Reflection.Missing.Value;
cExcel.Workbook book = app.Workbooks.Open["C:\test.xls", valueMissing,
       false, valueMissing, valueMissing, valueMissing, valueMissing,
       cExcel.XlPlatform.xlWindows, valueMissing, valueMissing,
       valueMissing, valueMissing, valueMissing, valueMissing, valueMissing];

5. Tạo 1 worksheet: [Chỉ chọn Tạo hay Mở worksheet thôi nhé]

cExcel.Worksheet sheet = [cExcel.Worksheet]book.Worksheets.Add[valueMissing, valueMissing, valueMissing, valueMissing];

6. Mở worksheet có sẵn:

cExcel.Worksheet sheet = [cExcel.Worksheet]book.Worksheets[1];

7. Điền giá trị vào File Excel:

//lấy vùng cần điền giá trị
cExcel.Range rng=sheet.get_Range["A2","A2"];
//đưa giá trị vào rng [tức ô A2]
rng.Value2 = "giá trị muốn đưa vào";

8. Lưu File *.xls:

book.Save[];

9. Đóng File và tắt chương trình Excel:

using cExcel = Microsoft.Office.Interop.Excel;
0

Chia sẽ trên:

  • ZingMe
  • Facebook
  • LinkedIn
  • Twitter
  • In

Thích bài này:

Thích Đang tải...

Chương trước đã giải thích về các thiết bị nhập – xuất tiêu chuẩn được xử lý bởi ngôn ngữ C. Ở chương này chúng ta sẽ thấy cách lập trình viên tạo, mở và đóng các file văn bản hoặc file nhị phân với các dữ liệu lưu trữ.

Một file biểu diễn một chuỗi các bytes, không kể đó là file văn bản hay file nhị phân. Ngôn ngữ lập trình C cung cấp các hàm truy cập mức độ cao cũng như thấp [mức hệ điều hành] để thao tác với file trên thiết bị lưu trữ. Chương này sẽ đưa bạn đến những cách gọi hàm quan trọng cho việc quản lý file.

Mở file trong C

Bạn có thể sử dụng hàm fopen[] để tạo file mới hoặc để mở các file đã tồn tại. Cách gọi này sẽ khởi tạo đối tượng loại FILE, mà bao gồm thông tin cần thiết để điều khiển luồng. Dưới đây là một cách gọi hàm:

FILE *fopen[ const char * ten_file, const char * che_do ];

Ở đây, ten_file là một chuỗi, được coi như tên file và giá trị che_do truy cập có thể là những giá trị dưới đây:

ModeMô tảrMở các file đã tồn tại với mục đích đọcwMở các file với mục đích ghi. Nếu các file này chưa tồn tại thi file mới được tạo ra. Ở đây, chương trình bắt đầu ghi nội dung từ phần mở đầu của fileaMở file văn bản cho việc ghi ở chế độ ghi tiếp theo vào cuối, nếu nó chưa tồn tại thì file mới được tạo. Đây là chương trình ghi nội dung với phần cuối của file đã tồn tại.r+Mở file văn bản với mục đích đọc và ghi.w+Mở một file văn bản cho chế độ đọc và ghi. Nó làm trắng file đã tồn tại nếu file này có và tạo mới nếu file này chưa có.a+Mở file đã tồn tại với mục đích đọc và ghi. Nó tạo file mới nếu không tồn tại. Việc đọc file sẽ bắt đầu đọc từ đầu nhưng ghi file sẽ chỉ ghi vào cuối file.

Nếu bạn thao tác với các file nhị phân, bạn có thể có các cách truy xuất thay cho các trường hợp trên như sau:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

Đóng file trong C

Để đóng 1 file bạn có thể sử dụng hàm fclose[] dưới đây:

 int fclose[ FILE *fp ];

Hàm fclose[ ] trả về giá trị zero nếu thành công hoặc EOF nếu có lỗi trong quá trình đóng file. Hàm này thực tế xóa các dữ liệu trong bộ đệm đối với file, đóng file và giải phóng bộ nhớ được sử dụng với file. EOF là một hằng số được định nghĩa trong phần stdio.h.

Có nhiều hàm đa dạng được cung cấp bởi thư viện chuẩn của ngôn ngữ C để đọc và ghi từng ký tự và trong một dạng với số lượng ký tự cố định. Chúng ta sẽ xem xét trong ví dụ sau đây:

Ghi tới một file trong C

Dưới đây là hàm đơn giản nhất để thực hiện việc ghi các ký tự riêng tới một luồng:

int fputc[ int c, FILE *fp ];

Hàm fputc[] ghi các ký tự với giá trị tham số c đến một luồng ra tham chiếu bởi con trỏ fp. Nó sẽ trả về ký tự được ghi nếu thành công hoặc EOF nếu có lỗi. Bạn có thể sử dụng hàm sau đây để ghi một chuỗi kết thúc bằng ký tự null đến một luồng:

int fputs[ const char *s, FILE *fp ];

Hàm fputs[] ghi chuỗi s đến một luồng ra tham chiếu bởi fp. Nó trả về một giá trị không âm nếu thành công và trả về ký tự EOF nếu xảy ra một lỗi. Bạn có thể sử dụng hàm int fprintf[FILE *fp,const char *format,...] để ghi một chuỗi ra file . Thử ví dụ dưới đây:

Bạn phải chắc chắn bạn có thư mục /tmp, nếu không có, bạn phải tạo thư mục này trên máy bạn.

#include 

main[]
{
   FILE *fp;

   fp = fopen["vidu.txt", "w+"];
   fprintf[fp, "Vi du kiem tra ham fprintf ...\n"];
   fputs["Vi du kiem tra ham fputs ...\n", fp];
   fclose[fp];
}

Khi đoạn code trên được biên dịch và thực hiện, nó tạo file mới là vidu.txt và ghi vào đó 2 dòng của 2 hàm khác nhau. Cùng đọc file này ở phần tiếp theo.

Đọc file trong C

Dưới đây là hàm đơn giản nhất để đọc một ký tự riêng rẽ từ file:

int fgetc[ FILE * fp ];

Hàm fgetc[] đọc một ký tự từ một file tham chiếu bởi con trở fp. Giá trị trả về là ký tự đọc được nếu thành công, và trong trường hợp lỗi trả về EOF. Hàm dưới đây cho phép bạn đọc chuỗi từ một luồng:

char *fgets[ char *buf, int n, FILE *fp ];

Hàm fgets[] đọc n-1 ký tự từ một luồng vào tham chiếu bởi fp. Nó copy chuỗi đọc đến bộ đệm buf, gán ký tự null vào kết thúc chuỗi.

Nếu hàm gặp phải một ký tự newline [dòng mới] [xuống dòng] '\n' hoặc ký tự EOF trước khi đọc được số lượng tối đa các ký tự, nó sẽ chỉ trả về các ký tự cho đến ký tự xuống dòng và ký tự xuống dòng mới. Bạn có thể sử dụng hàm int fscanf[FILE *fp, const char *format,...] để đọc chuỗi từ một file, nhưng dừng việc đọc ở khoảng trắng đầu tiên gặp phải:

#include 

main[]
{
   FILE *fp;
   char buff[255];

   fp = fopen["vidu.txt", "r"];
   fscanf[fp, "%s", buff];
   printf["1 : %s\n", buff ];

   fgets[buff, 255, [FILE*]fp];
   printf["2: %s\n", buff ];
   
   fgets[buff, 255, [FILE*]fp];
   printf["3: %s\n", buff ];
   fclose[fp];

}

Biên dịch và chạy chương trình C trên, đầu tiên nó đọc từ file được tạo từ khu vực trước và in ra kết quả sau đây:

Cùng xem một chút chi tiết hơn về điều đã xảy ra tại đây. Đầu tiên fscanf[] chỉ đọc This bởi vì sau đó nó gặp phải dấu cách, tiếp theo hàm fgets[] trả về các dòng còn lại cho đến khi gặp ký tự cuối file. Cuối cùng nó gọi hàm fgets[] để đọc hoàn toàn dòng thứ 2.

Hàm Nhập – Xuất nhị phân trong C

Dưới đây là hai hàm, có thể sử dụng cho việc input và output nhị phân:

size_t fread[void *ptr, size_t kich_co_cua_cac_phan_tu, 
             size_t so_phan_tu, FILE *ten_file];
              
size_t fwrite[const void *ptr, size_t kich_co_cua_cac_phan_tu, 
             size_t so_phan_tu, FILE *ten_file];

Cả 2 hàm trên được sử dụng để đọc và ghi các khối bộ nhớ, thường là các mảng hoặc cấu trúc.

Theo Tutorialspoint

Bài trước: Input & Output trong C

Bài tiếp: Bộ tiền xử lý trong C

Thứ Hai, 15/10/2018 09:21

53 👨 12.339

0 Bình luận

Sắp xếp theo

Xóa Đăng nhập để Gửi

Bạn nên đọc

  • Google chốt ngày ra mắt Pixel 7, Pixel Watch và Pixel Buds
  • Dòng Nokia Communicator
  • Laptop Fujitsu 'chia tay' màu sắc truyền thống
  • Pháo Hoa AR là gì? Cách xem pháo hoa AR
  • Hướng dẫn thiết lập tối ưu cho Cortana trên Windows 10 [Phần cuối]
  • Google mua 1.023 bằng sáng chế từ IBM để bảo vệ Android

Lập trình C

  • Vòng lặp trong lập trình C
  • Boolean trong C
  • Switch trong C
  • Kiểu dữ liệu trong lập trình C
  • Comment trong C
  • Biến trong lập trình C
Xem thêm

Lập trình C

  • Ngôn ngữ lập trình C là gì?
  • Hướng dẫn cài đặt C
  • Cấu trúc chương trình C cơ bản
  • Cú pháp cơ bản
  • Kiểu dữ liệu
  • Biến trong C
  • Hằng số
  • Lớp lưu trữ
  • Các toán tử
  • Điều khiển luồng
    • If ... Else
  • Vòng lặp
  • Các hàm trong C
    • abort[]
    • abs[]
    • atexit[]
    • atof[]
    • atoi[]
    • atol[]
    • bsearch[]
    • calloc[]
    • clearerr[]
    • ldiv[]
    • exit[]
    • fclose[]
    • feof[]
    • ferror[]
    • fflush[]
    • fgetc[]
    • fgetpos[]
    • fgets[]
    • fopen[]
    • fprintf[]
    • fputc[]
    • fputs[]
    • fread[]
    • free[]
    • freopen[]
    • fscanf[]
    • fseek[]
    • fsetpos[]
    • ftell[]
    • fwrite[]
    • getc[]
    • getchar[]
    • getenv[]
    • gets[]
    • labs[]
    • labs[]
    • malloc[]
    • mblen[]
    • mbstowcs[]
    • mbtowc[]
    • memchr[]
    • memcmp[]
    • memcpy[]
    • memset[]
    • perror[]
    • printf[]
    • putc[]
    • putchar[]
    • puts[]
    • qsort[]
    • raise[]
    • rand[]
    • realloc[]
    • remove[]
    • rename[]
    • rewind[]
    • scanf[]
    • setbuf[]
    • setvbuf[]
    • signal[]
    • sprintf[]
    • srand[]
    • sscanf[]
    • strchr[]
    • strcmp[]
    • strcoll[]
    • strcpy[]
    • strcspn[]
    • strerror[]
    • strlen[]
    • strncat[]
    • strncmp[]
    • strncat[]
    • strncpy[]
    • strpbrk[]
    • strrchr[]
    • strspn[]
    • strstr[]
    • strtod[]
    • strtok[]
    • strtol[]
    • strtod[]
    • strtoul[]
    • strxfrm[]
    • system[]
    • tmpfile[]
    • tmpnam[]
    • ungetc[]
    • vfprintf[]
    • vsprintf[]
    • wcstombs[]
    • wctomb[]
  • Quy tắc phạm vi
  • Mảng
  • Con trỏ
  • Chuỗi
  • Cấu trúc [Structure]
  • Union trong C
  • Bit Field
  • Typedef
  • Input & Output
  • Đọc và ghi file
  • Bộ tiền xử lý
  • Header File
  • Ép kiểu
  • Xử lý lỗi
  • Đệ quy
  • Tham số biến
  • Quản lý bộ nhớ
  • Tham số dòng lệnh
  • Thư viện C
    • Boolean
  • Switch

  • Công nghệ
    • Ứng dụng
    • Hệ thống
    • Game - Trò chơi
    • iPhone
    • Android
    • Linux
    • Nền tảng Web
    • Đồng hồ thông minh
    • Chụp ảnh - Quay phim
    • macOS
    • Phần cứng
    • Thủ thuật SEO
    • Kiến thức cơ bản
    • Raspberry Pi
    • Dịch vụ ngân hàng
    • Lập trình
    • Dịch vụ công trực tuyến
    • Dịch vụ nhà mạng
    • Nhà thông minh
  • Download
    • Ứng dụng văn phòng
    • Tải game
    • Tiện ích hệ thống
    • Ảnh, đồ họa
    • Internet
    • Bảo mật, Antivirus
    • Họp, học trực tuyến
    • Video, phim, nhạc
    • Mail
    • Lưu trữ đám mây
    • Giao tiếp, liên lạc, hẹn hò
    • Hỗ trợ học tập
    • Máy ảo
  • Tiện ích
  • Khoa học
    • Khoa học vui
    • Khám phá khoa học
    • Bí ẩn - Chuyện lạ
    • Chăm sóc Sức khỏe
    • Khoa học Vũ trụ
    • Khám phá thiên nhiên
  • Điện máy
    • Tủ lạnh
    • Tivi
    • Điều hòa
    • Máy giặt
  • Cuộc sống
    • Kỹ năng
    • Món ngon mỗi ngày
    • Làm đẹp
    • Nuôi dạy con
    • Chăm sóc Nhà cửa
    • Kinh nghiệm Du lịch
    • Halloween
    • Mẹo vặt
    • Giáng sinh - Noel
    • Tết 2023
    • Quà tặng
    • Giải trí
    • Là gì?
    • Nhà đẹp
    • TOP
    • Phong thủy
  • Video
    • Công nghệ
    • Cisco Lab
    • Microsoft Lab
    • Video Khoa học
  • Ô tô, Xe máy
    • Giấy phép lái xe
  • Làng Công nghệ
    • Tấn công mạng
    • Chuyện công nghệ
    • Công nghệ mới
    • Trí tuệ nhân tạo [AI]
    • Anh tài công nghệ
    • Bình luận công nghệ
    • Tổng hợp
  • Học CNTT
    • Quiz công nghệ
    • Microsoft Word 2016
    • Microsoft Word 2013
    • Microsoft Word 2007
    • Microsoft Excel 2019
    • Microsoft Excel 2016
    • Hàm Excel
    • Microsoft PowerPoint 2019
    • Microsoft PowerPoint 2016
    • Google Sheets - Trang tính
    • Photoshop CS6
    • Photoshop CS5
    • HTML
    • CSS và CSS3
    • Python
    • Học SQL
    • Lập trình C
    • Lập trình C++
    • Lập trình C#
    • Học HTTP
    • Bootstrap
    • SQL Server
    • JavaScript
    • Học PHP
    • jQuery
    • Học MongoDB
    • Unix/Linux
    • Học Git
    • NodeJS

Giới thiệu | Điều khoản | Bảo mật | Hướng dẫn | Ứng dụng | Liên hệ | Quảng cáo | Facebook | Youtube | DMCA

Giấy phép số 362/GP-BTTTT. Bộ Thông tin và Truyền thông cấp ngày 30/06/2016. Cơ quan chủ quản: CÔNG TY CỔ PHẦN MẠNG TRỰC TUYẾN META. Địa chỉ: 56 Duy Tân, Dịch Vọng Hậu, Cầu Giấy, Hà Nội. Điện thoại: 024 2242 6188. Email: info@meta.vn. Chịu trách nhiệm nội dung: Lê Ngọc Lam.

Bản quyền © 2003-2023 QuanTriMang.com. Giữ toàn quyền. Không được sao chép hoặc sử dụng hoặc phát hành lại bất kỳ nội dung nào thuộc QuanTriMang.com khi chưa được phép.

Chủ Đề