C++类:将浮点数据写入Excel

        自己写了一个C++类,用于将浮点型数据写入Excel表格,由于目的简单,因此只实现了只在第一列输入或者擦除数据。

头文件:file_writer.h

#pragma once
#include<iostream>
#include <fstream>
#include<sstream>
#include <string>
class file_writer{
public:
	/** @brief 从表格开头输入数据
	@param the_data 输入的双精度浮点型数据
	*/
	void input_data_at_start(double the_data);
	/*擦除写入表格的数据*/
	void clear_data_in_file();
	/** @brief 打开文件
	@param file_name 文件名称,例如:"C:\\Users\\Administrator\\test.xlsx",间隔请使用双斜线
	*/
	void openfile(const char* file_name);
	/** @brief 初始化文件名称并打开文件
	@param file_name 文件名称,例如:"C:\\Users\\Administrator\\test.xlsx",间隔请使用双斜线
	*/
	file_writer(const char* file_name);
	/*关闭文件*/
	void close_file();
	file_writer();
	~file_writer();
private:
	std::ofstream write_file_;
	int data_number_ = 0;
	bool FILE_HAVE_OPEN = 0;
	const char* file_name_ = "123";
};

源文件:file_writer.cpp

#include "file_writer.h"

std::string convertToString(double d) {
	std::ostringstream os;
	if (os << d)
		return os.str();
	return "invalid conversion";
}

void file_writer::input_data_at_start(double the_data) {
	if (FILE_HAVE_OPEN) {
		data_number_++;
		std::string input_string = convertToString(the_data);
		write_file_ << input_string << std::endl;
	}
}

void file_writer::clear_data_in_file() {
	int i;
	if (FILE_HAVE_OPEN)
		write_file_.close();
	write_file_.open(file_name_);
	for (i = 0; i < data_number_; i++) {
		write_file_ << "" << std::endl;
	}
	data_number_ = 0;
}

void file_writer::openfile(const char* file_name) {
	if (!FILE_HAVE_OPEN) {
		write_file_.open(file_name);
		file_name_ = file_name;
		FILE_HAVE_OPEN = 1;
	}
}

file_writer::file_writer(const char* file_name) {
	file_name_ = file_name;
	write_file_.open(file_name);
	FILE_HAVE_OPEN = 1;
}

void file_writer::close_file() {
	write_file_.close();
}

file_writer::file_writer() {

}

file_writer::~file_writer() {

}

示例代码:

void main()
{
	file_writer File_writer("C:\\Users\\Administrator\\Desktop\\T\\test.xlsx");//打开文件,也可以用openfile()函数
	for (int i = 0; i < 5; i++) {
		File_writer.input_data_at_start(3.141592653);//从A1开始逐行写入数据,数据只会在第一列写入,该函数无法写入其他列
	}
	File_writer.clear_data_in_file();//清空文件中的数据
	File_writer.close_file();//关闭文件
}

使用上述代码但是未运行函数:clear_data_in_file()后的结果:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伪程序猿l S x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值