Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > Excel : Сводная таблица


Автор: khaine 25.3.2011, 11:13
Доброго времени суток. Задача следующая: есть куча excel файлов, необходимо собрать в один.
Делаю так:

Код

void ExcelFill(CString p)
{
int c=0;
int v=1;
COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
_Application app;
Workbooks books;
_Workbook book;
Worksheets sheets;
_Worksheet sheet;
Range range;
app.CreateDispatch("Excel.Application");

if(!app)
         {
            AfxMessageBox("Couldn't start Excel.");
         }

app.SetSheetsInNewWorkbook(1);

books = app.GetWorkbooks();
book = books.Add (covOptional);
sheets = book.GetSheets();
sheet = sheets.GetItem(COleVariant((short)1));
range = sheet.GetRange(COleVariant("A2"),COleVariant("E2"));



if (p=="")
    {
    AfxMessageBox("WrongOutputDirecroty!");
    book.Close(covFalse,covFalse,covFalse);
    }
else
    {
    while (arr[c]!="")
    {
        range.SetValue2(COleVariant(arr[c]));
        c+=1;
    }
    p+="\\свод.xls";
    sheet.SaveAs(p,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);
    app.Quit();
    }

}


arr - массив, содержащий имена файлов, которые мы перебираем, собственно в цикле. В этом цикле и будем заполнять сводный файл. Вопроса два, оба касаемо работы с excel:
1. Как организовать копирование из одного файла в другой?
2. Как переходить по строкам в excel? То есть: берем range из одного файла, вставляем в другой. Далее необходимо перейти на следующую строку для дальнейшего заполнения. В range переменные static. 

Заранее, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)