פורסם 2005 בספטמבר 920 שנים אני מתכנת ב ++visual C ויצרתי קובץ טקסט שהוא בעצם עמודות בגרף מופרד בטאבים.האם אפשר לקרוא מהC לאקסל שייצור מהקובץ גרף?
פורסם 2005 בספטמבר 920 שנים אתה עובד עם c++ או עם managed c++ ?מצאתי מאמר על שימוש באקסל בעזרת managed c++ אולי תוכל להיעזר בו.http://www.codeproject.com/managedcpp/ExcelwithMC.asp
פורסם 2005 בספטמבר 1020 שנים אפשר, עשיתי את זה (כבר פעמיים, למען האמת)אתה צריך לעבוד עם automation בשביל זה.ולמען האמת - יותר קל לעשות את זה ב- VB או דלפי מאשר ב- VC.
פורסם 2005 בספטמבר 1120 שנים מחבר חבר'ה, דבר ראשון תודה רבהבקשר לתגובה הראשונה:נכנסתי ללינק ובאמת כתוב שם ממש ברור איך לעשות את זה - הצרה היא, באמת שמדובר על managed C ונעולם לא עבדתי עם התוכנה, זה פשוט להיכנס לזה?בקשר לתגובה השנייה:שוב, אני מתכנת חדש ולכן אולי תצחק כשאשאל - איך משתמשים ב automation? אבל...בכל מקרה ממש תודה, אם תוכלו להמשיך לעזור לי אני ממש אשמח, וגם אתרים טובים על איך לעשות את זה ב VB לא יזיקו.חוץ מזה אני עדיין מנסה למצוא דרך לעשות את זה בVC++6 הישן שאני משתמש בו. אם אני אמצא דרך למתכנת המתחיל אני אפרסם.
פורסם 2005 בספטמבר 1220 שנים automation זה אומר שאתה יכול להפעיל את התוכנה מבחוץ.יש פירוט של כל האובייקטים של Office ב- help תחת help for visual basic, למרות שאפשר להשתמש בהם מכל שפה (אתה רק צריך לעשות import ל- type library של office)בעיקרון, אתה משתמש באובייקט "מסמך" שבתוכו יש אובייקטים ל- Cells, graphs, Selection (ועוד הרבה) ומשתמש בפונקציות שלהם.
פורסם 2005 בספטמבר 1220 שנים כשאתה אומר גרף אתה מתכוון לדיאגרמה (כמו מקלות) או ממש דיאגרמה , למה עשיתי משהו דיי חמוד ויצירתי בVB ואם אתה מעוניין אני יעלה תמונה זה דיי פשוט .
פורסם 2005 בספטמבר 1220 שנים מחבר DarkMatter , אם אתה יכול אני אשמח לראותBoomerang, אוקי אבל איך אני עושה לform כזה export? ואז איך אני קורא אותו ל C? להכניס אותו כresource? דרך אגב ראיתי בclass wizard תת-תפריט שנקרא automation זה קשור?
פורסם 2005 בספטמבר 1220 שנים export לאיזה form?בעיקרון, אתה צריך לייבא את ה- type library של office. עם האובייקטים שם אתה לא עובד בצורה ויזואלית, אלא ב"שלט רחוק" על האפליקציה (אקסל) שרצה ויכולה להיות נסתרת אם אתה לא רוצה להראות אותה.בעיקרון הפעולות שאתה תצטרך הן (כולן דרך automation) הן פתיחת קובץ, בחירת השטח לגרף, יצירת הגרף, ושמירה/העתקה של הגרף או של התמונה שלו.הנה חתיכת קוד (בדלפי, אומנם, אבל זה כמעט אותו דבר בכל שפה) מפרוייקט שעשיתי פעם שמראה איך ליצור גרף מקובץ נתונים.מה שהוא עושה זה לקרוא פרמטרים מ- node של XML שמתאר את הגרף, יוצר את הגרף ומעתיק אותו למסמך ה- word שייצרתי.אני מקווה שאפשר להבין את הקוד הזה, אבל אם לא - אני אוכל להסביר.procedure TfrmMain.ExecuteGraphPlaceHolder(node: IXMLNode; range: OleVariant);var ChartType : TChartType; ExcelWB : OleVariant; varTrue, varFalse, filename, xlChartType, XLRangeStr, XLChart,chartTitle, labelsType, ExcelWS, Excelfileformat,ExcelLegendPos : OleVariant; chart3D, ShowLegend : boolean;begin varTrue:=True; varFalse:=false; filename:=datadir+'\'+node.Attributes['filename']; ExcelWB:=Unassigned; try ExcelWB:=ExcelApp.Workbooks.Open(filename,EmptyParam,true,EmptyParam, EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,0); FileName:=ExtractFilePath(paramStr(0))+'reporter_temp.xls'; ExcelFileFormat:=xlExcel9795; ExcelWB.SaveAs(filename,ExcelFileFormat);ChartType:=strToChartType(node.Attributes['GraphType']); chart3D:=node.Attributes['Use3D']='1'; xlChartType:=getExcelType(ChartType,chart3D); XLrangeStr:=node.Attributes['Range']; chartTitle:=node.Attributes['Title']; if node.Attributes['Labels']=Null then labelsType:=GetExcelType(ltNone) else labelsType:=GetExcelType(StrToLabelType(node.Attributes['Labels'])); ShowLegend:=node.Attributes['ShowLegend']='1'; if ShowLegend and (node.Attributes['LegendPosition']<>Null) then ExcelLegendPos:=GetExcelType(StrToLegendPosition(node.Attributes['LegendPosition'])); ExcelWS:=ExcelWB.ActiveSheet; if xlRangeStr<>Null then ExcelWS.Range[xlRangeStr].Select else ExcelWS.usedRange.Select; XLChart:=ExcelWB.Charts.Add; XLChart.Type:=xlChartType; XlChart.HasTitle:=ChartTitle<>Null; XLChart.ChartTitle.Text:=chartTitle; XLChart.ApplyDataLabels(labelsType); XLChart.hasLegend:=ShowLegend; if ShowLegend then XLChart.Legend.Position:=ExcelLegendPos; if node.Attributes['CategoryTitle']<>Null then begin XLChart.Axes(xlCategory).HasTitle:=true; XLChart.Axes(xlCategory).AxisTitle.Caption:=node.Attributes['CategoryTitle']; end; if node.Attributes['ValuesTitle']<>Null then begin XLChart.Axes(xlValue).HasTitle:=true; XLChart.Axes(xlValue).AxisTitle.Caption:=node.Attributes['ValuesTitle']; end;// XLChart.Copy will result copy of the picture only. XLChart.ChartArea.Copy; range.Paste; finally ExcelWB.Close(false); DeleteFile(ExtractFilePath(paramStr(0))+'reporter_temp.xls'); end;end;
פורסם 2005 בספטמבר 2020 שנים מחבר חבר'ה תודה רבה על העזרה,bomerang אני צריך קצת זמן לעכל את מה שכתבת (אני עובר על הפקודות)DarkMatter אם תוכל לתת לי את הקוד אני אשמח.בכל מקרה מצאתי דרך פשוטה, קצת עקומה ולא תיכנותית אבל פשוטה - אני פשוט משתמש בקובץ אקסל שכתבתי לו פרוצדורת onopen שעושה את מה שאני צריך, ואז אני קורא לו דרך ה shell. אני יודע שזה קצת מגעיל אבל זו גם דרך.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.