经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » iOS » 查看文章
iOS-Excel文件创建
来源:cnblogs  作者:macro小K  时间:2022/1/17 15:52:56  对本文有异议

导入 libxlsxwriter

Podfile 文件添加如下示例,终端cd到项目文件夹,执行 pod install

  1. pod 'libxlsxwriter'

引用

导入头文件

  1. #import <xlsxwriter/xlsxwriter.h>

创建Excel

  1. - (void)createExcel1Random{
  2. NSString *fileName = [[UIDevice jy_documentPath] stringByAppendingPathComponent:@"demo_k.xlsx"];
  3. if ([[NSFileManager defaultManager] fileExistsAtPath:fileName] ) {
  4. [[NSFileManager defaultManager] removeItemAtPath:fileName error:nil];
  5. }
  6. NSLog(@"fileName = %@",fileName);
  7. // 创建新xlsx文件,路径需要转成c字符串
  8. lxw_workbook *workbook = workbook_new([fileName UTF8String]);
  9. // 创建一个sheet
  10. lxw_worksheet *worksheet = workbook_add_worksheet(workbook, [@"tem_data" UTF8String] );
  11. ///设置列宽
  12. worksheet_set_column(worksheet, COLS("A:A"), 1.5, NULL);
  13. ///序列
  14. worksheet_set_column(worksheet, COLS("B:B"), 15, NULL);
  15. ///数据列
  16. worksheet_set_column(worksheet, COLS("C:C"), 50, NULL);
  17. ///行高
  18. worksheet_set_row(worksheet, 0, 10, nil);
  19. worksheet_set_row(worksheet, 1, 16.8, nil);
  20. worksheet_set_row(worksheet, 2, 16.8, nil);
  21. lxw_format *format = [self generalCellAttribute:workbook];
  22. for (int i = 0; i < 20; i++) {
  23. NSString *ran = [[NSString jy_randomLetterAndNumber:26] uppercaseString];
  24. uint32_t lxw_row_t = (uint32_t)(i);
  25. worksheet_write_string(worksheet, lxw_row_t + 1, 0 + 1, [[NSString stringWithFormat:@"%d",i+1] UTF8String], format);
  26. worksheet_write_string(worksheet, lxw_row_t + 1, 1 + 1, [ran UTF8String], format);
  27. }
  28. workbook_close(workbook);
  29. NSLog(@"fileName = %@",fileName);
  30. }
  31. /// 一般单元格样式
  32. /// @param workbook lxw_format
  33. - (lxw_format *)generalCellAttribute:(lxw_workbook *)workbook{
  34. lxw_format *format = workbook_add_format(workbook);
  35. format_set_border(format, LXW_BORDER_THIN);// 边框(四周):中宽边框
  36. // 加粗
  37. format_set_bold(format);
  38. //颜色
  39. format_set_font_color(format, LXW_COLOR_BLACK);
  40. // 水平居中
  41. format_set_align(format, LXW_ALIGN_CENTER);
  42. //垂直居中
  43. format_set_align(format, LXW_ALIGN_VERTICAL_CENTER);
  44. //设置单元格格式
  45. /*
  46. format_set_num_format(format, "¥#,##0.00");
  47. */
  48. return format;
  49. }

  1. - (void)createExcel2Random{
  2. NSString *fileName = [[UIDevice jy_documentPath] stringByAppendingPathComponent:@"demo_k.xlsx"];
  3. if ([[NSFileManager defaultManager] fileExistsAtPath:fileName] ) {
  4. [[NSFileManager defaultManager] removeItemAtPath:fileName error:nil];
  5. }
  6. NSLog(@"fileName = %@",fileName);
  7. // 创建新xlsx文件,路径需要转成c字符串
  8. lxw_workbook *workbook = workbook_new([fileName UTF8String]);
  9. // 创建一个sheet
  10. lxw_worksheet *worksheet = workbook_add_worksheet(workbook, [@"tem_data" UTF8String] );
  11. ///设置列宽
  12. worksheet_set_column(worksheet, COLS("A:A"), 1.5, NULL);
  13. ///序列
  14. worksheet_set_column(worksheet, COLS("B:B"), 15, NULL);
  15. ///数据列
  16. worksheet_set_column(worksheet, COLS("C:C"), 50, NULL);
  17. ///行高
  18. worksheet_set_row(worksheet, 0, 10, nil);
  19. worksheet_set_row(worksheet, 1, 16.8, nil);
  20. worksheet_set_row(worksheet, 2, 16.8, nil);
  21. /*合并4个单元格。*/
  22. worksheet_merge_range(worksheet, 1, 1, 2, 2, [@"合并单元格" UTF8String], [self mergeCellAttribute:workbook]);
  23. lxw_format *format = [self generalCellAttribute:workbook];
  24. for (int i = 0; i < 20; i++) {
  25. NSString *ran = [[NSString jy_randomLetterAndNumber:26] uppercaseString];
  26. uint32_t lxw_row_t = (uint32_t)(i);
  27. worksheet_write_string(worksheet, lxw_row_t + 3, 0 + 1, [[NSString stringWithFormat:@"%d",i+1] UTF8String], format);
  28. worksheet_write_string(worksheet, lxw_row_t + 3, 1 + 1, [ran UTF8String], format);
  29. }
  30. workbook_close(workbook);
  31. NSLog(@"fileName = %@",fileName);
  32. }
  33. /// 合并单元格样式
  34. /// @param workbook lxw_format
  35. - (lxw_format *)mergeCellAttribute:(lxw_workbook *)workbook{
  36. lxw_format *merge_format = workbook_add_format(workbook);
  37. /* 为合并范围配置格式。*/
  38. //合并居中(左右)
  39. format_set_align(merge_format, LXW_ALIGN_CENTER);
  40. //合并居中(上下)
  41. format_set_align(merge_format, LXW_ALIGN_VERTICAL_CENTER);
  42. //字体加粗
  43. format_set_bold(merge_format);
  44. //字体颜色
  45. format_set_font_color(merge_format,LXW_COLOR_BLACK);
  46. //字体大小
  47. format_set_font_size(merge_format, 16.0);
  48. //背景颜色
  49. format_set_bg_color(merge_format, LXW_COLOR_GRAY);
  50. //边框样式
  51. format_set_border(merge_format, LXW_BORDER_MEDIUM);
  52. return merge_format;
  53. }

 相关格式

  1. /* 创建新工作簿。*/
  2. lxw_workbook *workbook = workbook_new("format_font.xlsx");
  3. /* 添加工作表。*/
  4. lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
  5. /* 扩大第一列,使文本更清晰。*/
  6. worksheet_set_column(工作表,0020NULL);
  7. /* 添加一些格式。*/
  8. lxw_format *format1 = workbook_add_format(workbook);
  9. lxw_format *format2 = workbook_add_format(workbook);
  10. lxw_format *format3 = workbook_add_format(workbook);
  11. /* 为格式1设置粗体属性。*/
  12. format_set_bold(format1);
  13. /* 为格式2设置斜体属性。*/
  14. format_set_italic(format2);
  15. /* 为格式3设置粗体和斜体属性。*/
  16. format_set_bold(格式3);
  17. format_set_italic(format3);
  18. /*写一些格式化的字符串。*/
  19. worksheet_write_string(工作表,00,“这是粗体”,格式1);
  20. worksheet_write_string(工作表,10,“这是斜体”,格式2);
  21. worksheet_write_string(工作表,20,“粗体和斜体”,格式3);
  22. /* 关闭工作簿,保存文件并释放任何内存。*/
  23. workbook_close(工作簿);

 导出Excel

  1. - (void)exportExcel{
  2. NSString *filePath = [[UIDevice jy_documentPath] stringByAppendingPathComponent:@"demo_k.xlsx"];
  3. if ([[NSFileManager defaultManager] fileExistsAtPath:filePath] ) {
  4. NSURL *url = [NSURL fileURLWithPath:filePath];
  5. _documentController = [UIDocumentInteractionController interactionControllerWithURL:url];
  6. _documentController.delegate = self;
  7. [self openDocumentMenu];
  8. }
  9. else{
  10. NSLog(@"没有文件");
  11. }
  12. }
  13. - (void)openDocumentMenu{
  14. [_documentController presentOptionsMenuFromRect:self.view.bounds inView:self.view animated:YES]; // 菜单操作
  15. }

 

官方文档

libxlsxwriter 使用说明文档

libxlsxwriter 使用文档及示例

 

原文链接:http://www.cnblogs.com/wangkejia/p/15813165.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号