当前位置:网站首页>Xlslib use

Xlslib use

2022-04-23 18:52:00 Brick Porter

xlslib It's open source and free xls Build a library . No installation required office.

compile :

stay windows Compiling under is relatively simple , Navigate directly to the directory xlslib\build Find the corresponding VS edition , If you use the new version, you can use the upgrade of the old version . Of course, some project documents have some holes , The corresponding modification of compilation , There is also the wrong configuration , such as 2012 My directory is still 2010 The file cannot be found later . These should be carefully revised . Besides, it doesn't use itself def Nor is it defined in the header file __declspec(dllexport)  Export and so on , So only generate dll It's not lib Of documents . It provides a createDLL Project , After looking at it, it seems that it is generated during project generation map file , And then through map file , Generate DEF file , Call again link.exe Generate dll and lib.

Easy to use ,lib And header files are adjusted according to the implementation location . Switching tables does not seem to support switching through table names , Of course, I tried ,excel You can't have a table name with the same name in , So build your own map To save the table name and the corresponding idx That's it . Besides dump Wide characters are not supported , Just add one by yourself , This can avoid the problem of saving Chinese file names on some foreign language systems .

# define CPP_BRIDGE_XLS

#include "..\xlslibsrc\xlslib.h"

#ifdef WIN64
#pragma comment(lib,"../lib/xlslib_dll_x64.lib")
#else
#pragma comment(lib,"../lib/xlslib_dll.lib")
#endif // X64

class CXlsLib
{
private:
	//  Cell 
	//cell_t* cell;
	//font_t* _font;
	//xf_t* xf;
	// //pWS->defaultColwidth(25);  // Set the default column width 
		//pWS->defaultRowHeight(30);  // Set the default row height 
		//_font = pWB.font("Arial");
		//_font->SetBoldStyle(BOLDNESS_BOLD);  //  Set bold font 
		//_font->SetHeight(220);              // Set font size 11
		//xf = pWB.xformat();
		//xf->SetFont(_font);
		//xf->SetFillBGColor(CLR_WHITE);
		//xf->SetFillFGColor(CLR_RED);
	//  workbook 
	workbook m_pWB;
	//  Worksheet for the current operation 
	worksheet* m_pWS=NULL;
public:
	// Get the workbooks 
	workbook& GetWorkBook()
	{
		return m_pWB;
	}
	// Get current worksheet 
	worksheet* GetCurWorksheet()
	{
		return m_pWS;
	}
	// Create a new worksheet 
	worksheet* CreateWorkSheet(const std::wstring& SheetName)
	{
		m_pWS = m_pWB.sheet(SheetName);
		if (m_pWS)
		{
			m_pWS->MakeActive();
			return m_pWS;
		}
		return NULL;
	}
	// Switch tables 
	worksheet* SelWordSheet(unsigned16_t SheetIdx)
	{
		worksheet* _pWS = m_pWB.GetSheet(SheetIdx);
		if (_pWS)
		{
			_pWS->MakeActive();
			m_pWS = _pWS;
		}
		return _pWS;
	}
	// from 0 Start 
	cell_t* InsData(int row, int col, const std::wstring str)
	{
		if (m_pWS)
			return m_pWS->label(row, col, str);
		return NULL;
	}
	// from 0 Start 
	cell_t* InsData(int row, int col, double num)
	{
		if (m_pWS)
			return m_pWS->number(row, col, num);
		return NULL;
	}
	// Save as xls file 
	int SaveExcelFile(const std::wstring& FileName)
	{
		return m_pWB.Dump(FileName);
	}
};

版权声明
本文为[Brick Porter]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204210603257392.html