.OfficeAutomation: Added GetText.

git-svn-id: svn://ultimatepp.org/upp/trunk@3645 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
koldo 2011-07-11 20:58:43 +00:00
parent 4be48ad5db
commit 4e65fa5a5d
4 changed files with 109 additions and 0 deletions

View file

@ -378,6 +378,15 @@ ObjectOle Ole::MethodGet(ObjectOle from, String which, VariantOle &value, Varian
return result.pdispVal;
}
ObjectOle Ole::MethodGet(ObjectOle from, String which, VariantOle &value, VariantOle &value2, VariantOle &value3, VariantOle &value4, VariantOle &value5) {
VARIANT result;
VariantInit(&result);
if(!Ole::Invoke(DISPATCH_METHOD, &result, from, which, 4, value.var, value2.var, value3.var, value4.var, value5.var))
return NULL;
else
return result.pdispVal;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
INITBLOCK {
@ -597,6 +606,50 @@ Value MSSheet::GetValue(String cell) {
return GetValue(col, row);
}
Value MSSheet::GetText(String cell) {
int row, col;
OfficeSheet::CellToColRow(cell, col, row);
return GetText(col, row);
}
// cell in textual format like "B14"
bool MSSheet::SetHyperlink(String cell, String address, String value) {
int col, row;
OfficeSheet::CellToColRow(cell, col, row);
return MSSheet::SetValue(col, row, value);
}
bool MSSheet::SetHyperlink(int col, int row, String address, String value) {
if (!Sheet)
return false;
if (!Select(col, row, col, row))
return false;
return SetHyperlink(address, value);
}
bool MSSheet::SetHyperlink(String address, String value) {
if (!Sheet)
return false;
if (!Range)
return false;
ObjectOle hyperlinks = Ole::GetObject(Sheet, "Hyperlinks");
VariantOle textToDisplay, screenTip, subAddress, saddress, range;
textToDisplay.BString(value);
screenTip.BString("");
subAddress.BString("");
saddress.BString(address);
range.ObjectOle(Range);
return Ole::MethodGet(hyperlinks, "Add", textToDisplay, screenTip, subAddress, saddress, range);
}
bool MSSheet::SaveAs(String fileName, String type) {
if (!Book)
return false;
@ -1711,6 +1764,13 @@ Value OPENSheet::GetValue(String cell) {
return GetValue(col, row);
}
Value OPENSheet::GetText(String cell) {
int row, col;
OfficeSheet::CellToColRow(cell, col, row);
return GetText(col, row);
}
bool OPENSheet::SaveAs(String fileName, String type) {
if (!Document)
return false;
@ -1794,6 +1854,38 @@ bool OPENSheet::SetValue(Value value) {
return Ole::Method(Range, "setValue", vText);
}
bool OPENSheet::SetHyperlink(String cell, String address, String text) { // cell in textual format like "B14"
int col, row;
OfficeSheet::CellToColRow(cell, col, row);
return SetHyperlink(col, row, address, text);
}
bool OPENSheet::SetHyperlink(int col, int row, String address, String text) {
/* if (!SelCell(col, row))
return false;
VariantOle vText;
vText.Value(value);
if (value.Is<String>() || value.Is<Date>() || value.Is<Time>())
return Ole::Method(Cell, "setFormula", vText);
else
return Ole::Method(Cell, "setValue", vText);
*/
return false;
}
bool OPENSheet::SetHyperlink(String address, String text) {
/* if(!Range)
return false;
VariantOle vText;
vText.Value(value);
if (value.Is<String>() || value.Is<Date>() || value.Is<Time>())
return Ole::Method(Range, "setFormula", vText);
else
return Ole::Method(Range, "setValue", vText);
*/
return false;
}
bool OPENSheet::SetItalic(String cell, bool italic) {
int col, row;
OfficeSheet::CellToColRow(cell, col, row);

View file

@ -167,6 +167,7 @@ public:
static ObjectOle MethodGet(ObjectOle from, String which, VariantOle &value, VariantOle &value2);
static ObjectOle MethodGet(ObjectOle from, String which, VariantOle &value, VariantOle &value2, VariantOle &value3);
static ObjectOle MethodGet(ObjectOle from, String which, VariantOle &value, VariantOle &value2, VariantOle &value3, VariantOle &value4);
static ObjectOle MethodGet(ObjectOle from, String which, VariantOle &value, VariantOle &value2, VariantOle &value3, VariantOle &value4, VariantOle &value5);
static bool IsOn() {return numOleInit > 0;};
private:
static int numOleInit;

View file

@ -12,6 +12,10 @@
virtual Value GetValue(int col, int row); \
virtual Value GetValue(String cell); \
virtual Value GetText(int col, int row); \
virtual Value GetText(String cell); \
virtual bool SetHyperlink(int col, int row, String address, String text); \
virtual bool SetHyperlink(String cell, String address, String text); \
virtual bool SetHyperlink(String address, String text); \
virtual bool Replace(Value search, Value replace); \
\
virtual bool SetBold(int col, int row, bool bold); \

View file

@ -111,9 +111,21 @@ Value OfficeSheet::GetValue(String cell) {return (static_cast<SheetPlugin *>(Get
Value SheetPlugin::GetValue(int col, int row) {return Null;}
Value OfficeSheet::GetValue(int col, int row) {return (static_cast<SheetPlugin *>(GetData()))->GetValue(col, row);}
Value SheetPlugin::GetText(String cell) {return Null;}
Value OfficeSheet::GetText(String cell) {return (static_cast<SheetPlugin *>(GetData()))->GetText(cell);}
Value SheetPlugin::GetText(int col, int row) {return Null;}
Value OfficeSheet::GetText(int col, int row) {return (static_cast<SheetPlugin *>(GetData()))->GetText(col, row);}
bool SheetPlugin::SetHyperlink(int col, int row, String address, String text) {return false;}
bool OfficeSheet::SetHyperlink(int col, int row, String address, String text) {return (static_cast<SheetPlugin *>(GetData()))->SetHyperlink(col, row, address, text);}
bool SheetPlugin::SetHyperlink(String cell, String address, String text) {return false;}
bool OfficeSheet::SetHyperlink(String cell, String address, String text) {return (static_cast<SheetPlugin *>(GetData()))->SetHyperlink(cell, address, text);}
bool SheetPlugin::SetHyperlink(String address, String text) {return false;}
bool OfficeSheet::SetHyperlink(String address, String text) {return (static_cast<SheetPlugin *>(GetData()))->SetHyperlink(address, text);}
bool SheetPlugin::Replace(Value search, Value replace) {return false;}
bool OfficeSheet::Replace(Value search, Value replace) {return (static_cast<SheetPlugin *>(GetData()))->Replace(search, replace);}