在VS2017中使用Xlslib对Excel进行操作
/*
2018-10-12 16:57:05
使用xlslib来对Excel文件的一些操作
VS2017编译的一些问题 (这个库只支持写)
*/
详细的编译过程见
参考:https://www.cnblogs.com/dongc/p/8256813.html
参照上述解决问题之前
先将所有的文件转换成dos风格
使用notepad++进行转化
Edit->EOLConversion->Windows(CR LF) 转换成这种格式
错误信息:
error MSB3073: 命令“
echo
D:\WindowsProgram\xlslib-package-2.5.0\xlslib\xlslib\build\msvc2017\bin/Win32_MSVC2012.Debug\createDLL -MWin32 -n
D:\WindowsProgram\xlslib-package-2.5.0\xlslib\xlslib\build\msvc2017\bin/Win32_MSVC2017.Debug\xlslib_dll.map -l
D:\WindowsProgram\xlslib-package-2.5.0\xlslib\xlslib\build\msvc2017\obj/xlslib_dll_Win32_MSVC2017.Debug\ -i
D:\WindowsProgram\xlslib-package-2.5.0\xlslib\xlslib\build\msvc2017\bin/Win32_MSVC2017.Debug\xlslib_dll.lib -W
D:\WindowsProgram\xlslib-package-2.5.0\xlslib\xlslib\build\msvc2017\obj/xlslib_dll_Win32_MSVC2012.Debug\
错误解决方式
属性->生成事件->生成后的事件 -> 命令行 ->从父集继承 (编译一次 就会出现该选项的)
如果需要写入中文 该怎么使用?
测试使用xlslib进行写文件
在写入的时候默认用的string
写入的部分代码:
workbook wb;xf_t* xf = wb.xformat();worksheet* ws = wb.sheet(L"中文");std::string label = "Hello, World!";ws->label(0, 0, label, xf); // 从0开始数,第1行,第2列,即C3wb.Dump("workbook.xls");
看sheet 以及 label的实现
//sheet实现部分
worksheet* workbook::sheet(const string& sheetname)
{u16string str16;worksheet* pnewsheet = new worksheet(m_GlobalRecords, m_sheetIndex++);m_GlobalRecords.char2str16(sheetname, str16);m_Sheets.push_back(pnewsheet);// NOTE: Streampos defaults to 0// It has to be set somewhere elsem_GlobalRecords.AddBoundingSheet(0, BSHEET_ATTR_WORKSHEET, str16);// Return a pointer to the just added sheetreturn m_Sheets.back();
}worksheet* workbook::sheet(const ustring& sheetname) //ustring 看定义 知道是 wstring
{u16string str16;worksheet* pnewsheet = new worksheet(m_GlobalRecords, m_sheetIndex++);m_GlobalRecords.wide2str16(sheetname, str16);m_Sheets.push_back(pnewsheet);// NOTE: Streampos defaults to 0// It has to be set somewhere elsem_GlobalRecords.AddBoundingSheet(0, BSHEET_ATTR_WORKSHEET, str16);// Return a pointer to the just added sheetreturn m_Sheets.back();
}//label实现部分
cell_t* worksheet::label(unsigned32_t row, unsigned32_t col,const std::string& strlabel, xf_t* pxformat)
{label_t* lbl;lbl = new label_t(m_GlobalRecords, row, col, strlabel, pxformat);AddCell(lbl);return lbl;
}cell_t* worksheet::label(unsigned32_t row, unsigned32_t col,const ustring& strlabel, xf_t* pxformat)
{label_t* lbl;lbl = new label_t(m_GlobalRecords, row, col, strlabel, pxformat);AddCell(lbl);return lbl;
}
根据上面给出的接口 可以很好的写入中文
在需要使用中文的情况下 使用宽字符的形式即可
这个库只支持写Excel文件 我的天啦 = =
设置字体
参考:https://blog.csdn.net/davidsu33/article/details/43153701?utm_source=copy
Windows的一些:
新细明体:PMingLiU
细明体:MingLiU
标楷体:DFKai-SB
黑体:SimHei
宋体:SimSun
新宋体:NSimSun
仿宋:FangSong
楷体:KaiTi
仿宋_GB2312:FangSong_GB2312
楷体_GB2312:KaiTi_GB2312
微软正黑体:Microsoft JhengHei
微软雅黑体:Microsoft YaHei
装Office会生出来的一些:
隶书:LiSu
幼圆:YouYuan
华文细黑:STXihei
华文楷体:STKaiti
华文宋体:STSong
华文中宋:STZhongsong
华文仿宋:STFangsong
方正舒体:FZShuTi
方正姚体:FZYaoti
华文彩云:STCaiyun
华文琥珀:STHupo
华文隶书:STLiti
华文行楷:STXingkai
华文新魏:STXinwei
---------------------
有更好的处理Excel的开源库 Xlnt
在VS2017中使用Xlslib对Excel进行操作相关推荐
- VS2017中C++无法将参数1从const char [8] 转换为char[]
VS2017中开发遇到的问题: 看到网上有两种解决办法: 1.结构体中定义的 char * 前面加上 "const": 原因应该是函数的实参与形参类型不匹配, 字符串在内存中是一个 ...
- 转HTML中的table转为excel
转换html 中的table 为excel,firefox浏览器支持,代码如下 <%@ page language="java" contentType="text ...
- ASP.NET中数据库数据导入Excel并打印
众所周知,WEB上的打印是比较困难的,常见的WEB上打印的方法大概有三种: 1.直接利用IE的打印功能.一般来说,这种方法可以做些扩展,而不是单单的调用javascript:print()这样简单,比 ...
- C#中导出百万级Excel只需几秒除了NPOI还可以这样
场景 Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载: https://blog.csdn.net/B ...
- Winform中通过NPOI导出Excel时通过ICellStyle和IDataFormat格式化日期显示格式
场景 Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载: https://blog.csdn.net/B ...
- Winforn中通过NPOI导出Excel时通过XSSFClientAnchor和XSSFPicture添加图片
场景 Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载: https://blog.csdn.net/B ...
- python pandas 读取excel 去重某一列_Python中Pandas读取修改excel操作攻略(代码示例)...
本篇文章给大家带来的内容是关于Python中Pandas读取修改excel操作攻略(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 环境:python 3.6.8 以某米赛 ...
- 使用VS2017编译sqlite和在VS2017中配置使用sqlite的简单例子演示
转自:http://blog.csdn.net/hyxiaohaiyang/article/details/7382551 知识补充: sqlite3.dll动态链接库,它允许程序共享执行特殊任务所必 ...
- springboot中使用poi导出excel文件(亲测实现了第一个功能)
1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...
最新文章
- python开发函数进阶:递归函数
- C#中的Dictionary字典类介绍
- 三维重建:QT+OpenNI+Kinect图像校正
- .NET 6 即将到来的新特性 — 隐式命名空间引用
- LOJ#6002. 「网络流 24 题」最小路径覆盖
- mysql增错误_使用MySQL练习增删改查时因为版本问题出现连接错误
- mysql 触发器 for each row 理解_MySQL触发器中的“ FOR EACH ROW”如何工作?
- python 类继承方法_python类的继承、多继承及其常用魔术方法
- 聊天记录曝光,T-Mobile 证实内部工具和源代码遭 Lapsus$ 访问
- python绘制小猪佩奇
- IOCCC.1984.anonymous.c.解析
- 动软代码生成器-模板修改,模型修改
- 掌握通过计算机实现香农编码,信息论编码实验二香农编码
- pythonexcel怎么读_python怎么读excel
- 静态路由配置(目的下一跳)
- 计算机专业论文的创新点怎么说,计算机专业毕业生如何写毕业论文
- 程序员用代码求救, 同事“秒懂”
- 超简单配置Android持续集成自动化打包流程 - GitHub+GitLab-CI+蒲公英+钉钉
- 交换机路由器的基本配置
- 从耦合微带线到近、远端串扰