|
|
#1 |
|
Участник
|
Застрял на элементарной задаче: есть какой-либо xls-файл, надо в переменную str прочитать его ячейку, ну, например, "A1". В ComExcelDocument_RU такого метода нету (get...). Может кто подскажет метод?! Через COM делать неохото. Возможно это уже обсуждалось, но я не смог найти... |
|
|
|
|
#2 |
|
Участник
|
X++: str strValue(int _row, int _col) { COM c = this.cell(_row, _col); COMVariant cv = c.value(); switch (cv.variantType()) { case COMVariantType::VT_BSTR: return cv.bStr(); case COMVariantType::VT_R8: return num2str(cv.double(),-1,0,0,0); } return ''; } |
|
|
|
|
#3 |
|
Участник
|
X++: COM cell(int _row, int _col) { int ii; COM cellValue; ; cellValue = worksheet.cells(); ii = 0; SysCOM::variant2COM(cellValue, cellValue.item(_row, _col)); return cellValue; } |
|
|
|
|
#4 |
|
SAP
|
Вот ссылка котороя помогла мне в этом разобратся.
Axapta программирует Excel на VBA |
|
|
|
| За это сообщение автора поблагодарили: Gustav (1). | |
|
|
#5 |
|
Member
|
Цитата:
Сообщение от Zeratul
...
Через COM делать неохото. ...
__________________
С уважением, glibs® |
|
|
|
|
#6 |
|
Участник
|
Цитата:
Сообщение от abv2703
COM cell(int _row, int _col)
{ int ii; COM cellValue; ; cellValue = worksheet.cells(); ii = 0; SysCOM::variant2COM(cellValue, cellValue.item(_row, _col)); return cellValue; }
|
|
|
|
|
#7 |
|
Участник
|
X++: public class ReadFromExcelFile { COM worksheet; } void loadFromFile(Filename _fileName) { ComExcelDocument_RU exl = new ComExcelDocument_RU(); ; if (! exl.open(_fileName)) throw error('?????? ??? ???????? ????? ' + _fileName); exl.visible(false); worksheet = exl.getWorkSheet(1); }
|
|
|
|
|
#8 |
|
Модератор
|
Можно через ODBC.
Объясните начинающему как загрузить данные из Excel? Смотрел форум, но не нашел. Я выкладывал подробный пример. С Уважением, Георгий |
|
|
|
|
#9 |
|
Участник
|
а еще можно через CSV и класс CommaIO
|
|
|
|
|
#10 |
|
Участник
|
Тоже работает, месяц назад думал над этим
X++: fileName = fileNameControl.text();
fileNameControl.text(fileNameTrim(fileName));
excel = new COM('Excel.Application');
wbs = excel.workbooks();
wb = wbs.open(fileName);
wss = wb.WorkSheets();
ws = wss.Item("Акт");
while(cycleFlag == "zyclus")
{
//cell A
r = ws.range("A"+int2str(counter1));
temp = r.value2();
if(temp.toString() != "VT_EMPTY")
numPos = temp.double();
else
{
cycleFlag = "nicht zyclus";
break;
}
} |
|
|
|
|
#11 |
|
Участник
|
лучше и быстрее чем через одбс не получится.
через ком бывают проблемы(последний раз наблюдалось в 2.5, потом не смотрел) вываливается через определенное кол-во загруженных строк - но позволяет выбрать файл |
|
|
|
|
#12 |
|
Участник
|
Ну, "до кучи". Импорт из EXCEL через буфер обмена
PHP код:
Недостатки - буфер обмена возвращает данные только в символьном виде. Переводить в нужный тип данных придется вручную |
|
|
|
| За это сообщение автора поблагодарили: konopello (1). | |
|
|
|