嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
//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);
}
}