MFC写入数据到EXCEL,相关格式问题请教?

待续_1006 2018-12-19 11:22:37
目前通过VS2010可以正确读写excel,但是excle表格中有几行数据是需要设置表格高度和字体的
找到了CRange类的 AutoFormat函数,但是试验多次,没有找到行高的和字体的设置方法,是我参数用错了?还是有别的其他函数
VARIANT AutoFormat(long Format, VARIANT& Number, VARIANT& Font, VARIANT& Alignment, VARIANT& Border, VARIANT& Pattern, VARIANT& Width)
...全文
210 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiger波波 2018-12-25
  • 打赏
  • 举报
回复


CRange m_cell;								//µ¥Ôª¸ñ
	CRange m_range;								//ÇøÓò
	CWorksheet m_sheet;							//¹¤×÷±í
	CWorksheets m_sheets;						//¹¤×÷±í¼¯ºÏ
	CComment m_comment;							//Åú×¢

	CWorkbook m_book;							//¹¤×÷²¾
	CWorkbooks m_books;							//¹¤×÷²¾¼¯ºÏ
	CApplication m_app;							//excel½ø³Ì

	CFont0 m_font;								//×ÖÌå
	CBorders m_borders;							//±í¸ñ

BOOL CExcelOperations::GetCellFont(void)
{
	try
	{
		m_font = m_cell.get_Font();
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

tiger波波 2018-12-25
  • 打赏
  • 举报
回复
以前写的一个类,参考下把


BOOL CExcelOperations::SetCellFont(LPCTSTR strFont)
{
	try
	{
		if( !GetCellFont() )
			return FALSE;

		m_font.put_Name(COleVariant(strFont));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetAutoFitWidth(void)
{
	try
	{
		m_range.AttachDispatch( m_sheet.get_Cells(), TRUE );
		m_range = m_range.get_EntireColumn();
		m_range.AutoFit();
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetBorders(LPCTSTR strLeftUp, LPCTSTR strRightDown, short siLineStyle)
{
	try
	{
		m_range = m_sheet.get_Range(COleVariant(strLeftUp),COleVariant(strRightDown));
		m_borders = m_range.get_Borders();
		m_borders.put_LineStyle(COleVariant((short)siLineStyle));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetVerticalAlignment(LONG lAlignment)
{
	try
	{
		m_range.put_VerticalAlignment(COleVariant((LONG)lAlignment));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetHorizontalAlignment(LONG lAlignment)
{
	try
	{
		m_range.put_HorizontalAlignment(COleVariant((LONG)lAlignment));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetColumnWidth(LONG lWidth)
{
	try
	{
		m_cell.put_ColumnWidth(COleVariant((LONG)lWidth));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetRowHeight(LONG lHeight)
{
	try
	{
		m_cell.put_RowHeight(COleVariant((LONG)lHeight));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetFontSize(LONG lSize)
{
	try
	{
		if( !GetCellFont() )
			return FALSE;

		m_font.put_Size(COleVariant((LONG)lSize));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetCellColor(BYTE bRed, BYTE bGreen, BYTE bBlue)
{
	try
	{
		if( !GetCellFont() )
			return FALSE;

		m_font.put_Color(COleVariant((LONG)RGB(bRed, bGreen, bBlue)));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CExcelOperations::SetCellBold(BOOL bBoolean)
{
	try
	{
		if( !GetCellFont() )
			return FALSE;

		m_font.put_Bold(COleVariant((short)bBoolean));
	}
	catch (...)
	{
		return FALSE;
	}

	return TRUE;
}




zgl7903 2018-12-25
  • 打赏
  • 举报
回复
录制宏 手动操作 EXCEL ,停止录制, 然后编辑宏, 按宏代码修改

待续_1006 2018-12-24
  • 打赏
  • 举报
回复
这CSDN要黄摊了吧?
待续_1006 2018-12-19
  • 打赏
  • 举报
回复
行高和列宽的问题解决了,现在的疑问是怎么设置某行或是某个区域的字体样式?

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧