实例介绍
【实例简介】
【实例截图】
【核心代码】
//Aspose.Cells读取Excel文件
public: bool AsposeCellsReadExcelFileFunc(String^ file, String^ fkzm){
try
{
if (String::IsNullOrWhiteSpace(file))
{
return false;
}
this->richTextBox1->Text = "";
int iRow = 2;
int iCol = 1;
String^ firstStr;//获取第j行k列单元格的内容
String^ secondStr;//获取第j行k列单元格的内容
String^ thirdStr;//获取第j行k列单元格的内容
String^ fourStr;//获取第j行k列单元格的内容
try
{
if ((fkzm->CompareTo("XLS") == 0) || (fkzm->CompareTo("XLSX") == 0))
{
Aspose::Cells::Workbook^ wk = gcnew Aspose::Cells::Workbook();
wk->Open(file);//打开Excel文档
Aspose::Cells::Worksheet^ sht = wk->Worksheets[0];//查看文档的sheet0内容
Aspose::Cells::Cells^ cells = sht->Cells;//获取sheet0的所有单元格
if (sht == nullptr)
{
return false;
}
int rowCount = cells->MaxDataRow 1;//当Excel没有一行数据时,读取到的cells.MaxDataRow=-1,当有一行数据时cells.MaxDataRow=0 MaxDataRow:包含数据的单元格的最大行索引
if (rowCount == 0)
{
MessageBox::Show("文件内容为空!", "提示", MessageBoxButtons::OK);
return false;
}
int cellCount = cells->MaxDataColumn 1;//当Excel没有一列数据时,读取到的cells.MaxDataColumn=-1,当有一列数据时cells.MaxDataColumn=0 MaxDataColumn:包含数据的单元格的最大列索引
try
{
iRow = 3;
iCol = 1;
firstStr = cells[iRow, 1]->Value->ToString();//获取第j行k列单元格的内容
while(!String::IsNullOrWhiteSpace(firstStr))
{
secondStr = cells[iRow, 2]->Value->ToString();//获取第j行k列单元格的内容
thirdStr = cells[iRow, 3]->Value->ToString();//获取第j行k列单元格的内容
fourStr = cells[iRow, 4]->Value->ToString();//获取第j行k列单元格的内容
this->richTextBox1->Text = firstStr " " secondStr " " thirdStr " " fourStr "\n";
iRow ;
if (rowCount <= iRow)
{
break;
}
firstStr = cells[iRow, 1]->Value->ToString();//获取第j行k列单元格的内容
}
}
catch(Exception^ ex)
{
iRow = 1;
firstStr = cells[iRow, 0]->Value->ToString();//获取第j行k列单元格的内容
while(!String::IsNullOrWhiteSpace(firstStr))
{
secondStr = cells[iRow, 1]->Value->ToString();//获取第j行k列单元格的内容
thirdStr = cells[iRow, 2]->Value->ToString();//获取第j行k列单元格的内容
fourStr = cells[iRow, 3]->Value->ToString();//获取第j行k列单元格的内容
this->richTextBox1->Text = firstStr " " secondStr " " thirdStr " " fourStr "\n";
iRow ;
if (rowCount <= iRow)
{
break;
}
firstStr = cells[iRow, 0]->Value->ToString();//获取第j行k列单元格的内容
}
}
wk->Save(file);
wk = nullptr;
}
else if (fkzm->CompareTo("CSV") == 0)
{
Aspose::Cells::Workbook^ wk = gcnew Aspose::Cells::Workbook();
wk->Open(file);//打开Excel文档
Aspose::Cells::Worksheet^ sht = wk->Worksheets[0];//查看文档的sheet0内容
Aspose::Cells::Cells^ cells = sht->Cells;//获取sheet0的所有单元格
if (sht == nullptr)
{
return false;
}
int rowCount = cells->MaxDataRow 1;//当Excel没有一行数据时,读取到的cells.MaxDataRow=-1,当有一行数据时cells.MaxDataRow=0 MaxDataRow:包含数据的单元格的最大行索引
if (rowCount == 0)
{
MessageBox::Show("文件内容为空!", "提示", MessageBoxButtons::OK);
return false;
}
int cellCount = cells->MaxDataColumn 1;//当Excel没有一列数据时,读取到的cells.MaxDataColumn=-1,当有一列数据时cells.MaxDataColumn=0 MaxDataColumn:包含数据的单元格的最大列索引
//=================================================
iRow = 1;
firstStr = cells[iRow, 0]->Value->ToString();//获取第j行k列单元格的内容
while(!String::IsNullOrWhiteSpace(firstStr))
{
secondStr = cells[iRow, 1]->Value->ToString();//获取第j行k列单元格的内容
thirdStr = cells[iRow, 2]->Value->ToString();//获取第j行k列单元格的内容
fourStr = cells[iRow, 3]->Value->ToString();//获取第j行k列单元格的内容
this->richTextBox1->Text = firstStr " " secondStr " " thirdStr " " fourStr "\n";
iRow ;
if (rowCount <= iRow)
{
break;
}
firstStr = cells[iRow, 0]->Value->ToString();//获取第j行k列单元格的内容
}
wk->Save(file);
wk = nullptr;
}
return true;
}
catch(Exception^ ex)
{
MessageBox::Show(ex->StackTrace, "提示", MessageBoxButtons::OK);
}
}
catch(Exception^ ex)
{
MessageBox::Show(ex->StackTrace, "提示", MessageBoxButtons::OK);
}
return false;
}
//Aspose.Cells读Excel文档
private: System::Void btnAsposeCellsReadExcel_Click(System::Object^ sender, System::EventArgs^ e) {
try
{
String^ templatePath = System::Windows::Forms::Application::StartupPath "\\Template";//默认保存路径
this->openFileDialog1 = gcnew System::Windows::Forms::OpenFileDialog();
this->openFileDialog1->InitialDirectory = templatePath;
//this->openFileDialog1->Filter = "Excel文件|*.xls|所有文件|*.xls";
this->openFileDialog1->Filter = "Excel文件|*.xlsx|Excel文件|*.xls|CSV文件|*.csv";
this->openFileDialog1->RestoreDirectory = true;
this->openFileDialog1->FilterIndex = 1;
if (System::Windows::Forms::DialogResult::OK == this->openFileDialog1->ShowDialog(this))
{
String^ readfn = this->openFileDialog1->FileName;
int iFIndex = readfn->LastIndexOf("\\");
String^ strfn = readfn->Substring((iFIndex 1));
iFIndex = strfn->LastIndexOf(".");
String^ fgs = strfn->Substring((iFIndex 1));
String^ fkzm = fgs->ToUpper();
if ((fkzm->CompareTo("XLS") != 0) && (fkzm->CompareTo("XLSX") != 0) && (fkzm->CompareTo("CSV") != 0))
{
MessageBox::Show(" 打开文件失败,不是有效的文件!", "提示", MessageBoxButtons::OK);
return;
}
//=========================================
//保存数据到文档
bool bSuccFlag = AsposeCellsReadExcelFileFunc(readfn, fkzm);
if(bSuccFlag)
{
MessageBox::Show(" 读文件成功!", "提示", MessageBoxButtons::OK);
}
else
{
MessageBox::Show(" 读文件失败!", "提示", MessageBoxButtons::OK);
}
}
}
catch (Exception^ ex)
{
MessageBox::Show(" 读文件失败!\n\r" ex->StackTrace, "提示", MessageBoxButtons::OK);
}
}
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论