Hiding Rows in an Excel Worksheet programmatically through automation.
Need to hide all the rows till the end that dont have any data in an excel worksheet. Please sugest how should I do it .
Hello,
Do you mean that you just want to display the data that exists in the database? You might want to make use of the "Used Range" property. Take a look at the attached VI I wrote. It appends data to the end of an existing Excel spreadsheet, but you could easily modify it to use the "Value" property rather than the "Count" to retrieve the values and display them.
I hope this helps! Let me know if you'd like any additional help coding (I know ActiveX can get messy quickly).
Liz Fausak
National Instruments
Attachments:
ExcelAppendToSheet.vi 88 KB
NumberToColumnLetter.vi 163 KB
Similar Messages
-
Excel 2013 installed through 365 crashes when small row is in spreadsheet
Hi,
I have major issue with Excel files that makes Excel stop working when trying to print.
Excel crashes already at the preview pane and it has nothing todo with print driver, it crashes if using the XPS driver as well.
Using Excel installed locally through 365 (All patches applied)
By searching for formatting error in the spread sheet I found out that there were a couple of rows that had very small height and removing those (or increasing them) made Excel not crashing when trying to print.
This excel file is actually working on other installations of Exel 2013 but it seemes to only cause problems on the Excel 2013 installed through 365.
When I found the problem and that it seemes only to be on the 365 Excel I also found another user with same problem but no solution. (community.office365.com/en-us/forums/172/t/168863.aspx)
In my case I have several hundred Excel files and most of them are password protected which makes it impossible to fix the rows manually.
It is not a problem on traditional installed Excel 2013 or earlier versions... So I would say it is a bug with the 365 version of Excel.
Anyone out there with a solution or how to report this to Microsoft?I would escalate the issue and someone who is more familiar with this kind of issue to deal with this problem.
Thank you for your feedback.
Tony Chen
TechNet Community Support -
I want to print an excel worksheet so that the rows are shaded light then dark, light then dark. This helps when reading the data across the page on any selected line. Where do I select that option?
sophia beth wrote:
I want to print an excel worksheet so that the rows are shaded light then dark, light then dark. This helps when reading the data across the page on any selected line. Where do I select that option?
Not sure if it's any better in the version you have, but in earlier versions, you would have to manually select alternating rows using cmd-click in the row numbers and then fill the cells with the lightest possible shade in the fill palette. Again, in an earlier version, it is possible to use the format painter (use your Excel help for details) to select several rows formatted with the shading and paint that format to an equivalent number of rows elsewhere. -
Any method of ole2 to count the no. of rows in excel worksheet ??
Dear all,
want to generate a for 1..n loop structure to access the excel worksheet.
iam using ole2 to upload data from excel to oracle.
rest is fine..
till now iam arbitrarily inputting a value as a count from forms to run the loop.
want to know is there any method of ole2 to count the no. of rows in excel worksheet...???
regards,If you have purchase order number in your cube then you can use the easiest method of all of counting -- a calculated key figure with exception aggregation.
Create a CKF and add any basic key figure to it from your cube (basic means a key figure from the cube, not another CKF or RKF). If you're using the 3.x query designer then click the Enhance button and set the exception aggregation to Counting All Values. If you're using the 7.0 query designer then click on the Aggregation tab and switch the Exception Aggregation to Counter for All Detailed Values. With either query designer set the reference characteristic to your PO number characteristic. This CKF will count the number of PO documents.
See this document for step-by-step instructions: [How to... count the occurrences of a characteristic relative to one or more other characteristics|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/7e58e690-0201-0010-fd85-a2f29a41c7af]. -
Map Excel worksheet into Oracle tables repository
I am new to VB2005. I am working on VB code that can map(read) any table from excel worksheet and load it into Oracle table. Oracle table that I have are: 1)META_OBJECTTYPES(OBJECTTYPEID pk,OBJECTTYPENAME,OBJECTTYPEDESC, OBJECTMETATYPE,OBJECTDOMAIN).
2) META_OBJECTS(OBJECTKEY PK,OBJECTTYPEID FK,OBJECTNAME,OBJECTDESC).
3)META_OBJECTDEPENDENCIES(SRCOBJECTKEY FK, TGTOBJECTKEY FK,DEPENDENCYTYPE PK)
4)META_OBJECTATTRIBUTES((OBJECTKEY FK, OBJECTATTRNAME PK,OBJECTATTRVALUE). NOTICE META_OBJECTTYPES IS PARENT TO META_OBJECTS AND META_OBJECTS IS PARENT TO (META_OBJECTDEPENDENCIES AND META_OBJECTATTRIBUTES) AND ALL PARENT HAS 1 TO MANY REALTIONSHIP TO CHILD TABLES. For example I have employee table in Excel worksheet that has two columns employee_id number, employee_name varchar2(50) I need my vb code map table name employee with its 2 columns into my 4 tables that I have in Oracle repository,
My code so far just insert values into oracle tables in repository, but what is require is mapping table with contents into oracle tables.
Imports System
Imports System.Data ' VB.NET
Imports Oracle.DataAccess.Client ' ODP.NET Oracle data provider
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
'System.Data.OracleClient lets you access Oracle databases.
Public con As System.Data.OracleClient.OracleConnection = New System.Data.OracleClient.OracleConnection() 'Oracle.DataAccess.Client.OracleConnection()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim range As Excel.Range
Dim rCnt As Integer
Dim cCnt As Integer
Dim Obj As Object
xlApp = New Excel.ApplicationClass
xlApp.Visible = True
xlWorkBook = xlApp.Workbooks.Open("c:\employee.xls")
xlWorkSheet = xlWorkBook.Worksheets("sheet1")
range = xlWorkSheet.UsedRange
For rCnt = 2 To range.Rows.Count
For cCnt = 1 To range.Columns.Count
Obj = CType(range.Cells(rCnt, cCnt), Excel.Range)
MsgBox(Obj.value)
Next
Next
xlWorkBook.Close()
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim daOracle As New OracleDataAdapter
Dim InsertCommand As New OracleCommand
daOracle.InsertCommand = New OracleCommand
'1.Create connection object to Oracle database
Dim con As OracleConnection = New OracleConnection()
Try
'2.Specify connection string
con.ConnectionString = ("Data Source=dprod;User Id=smughrabi; Password=Sul9966")
'3. Open the connection through ODP.NET
con.Open()
Dim cmd As OracleCommand = New OracleCommand
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "insert into meta_objecttypes values (4,'TABLE', 'TABLES','ERstudio','Demo')"
cmd.ExecuteNonQuery()
'You have to commit to be inserted into DB
cmd.CommandText = "commit"
cmd.ExecuteNonQuery()
'Catch ex As Exception
'4.display if any error occurs
'MsgBox(ex.Message, Microsoft.VisualBasic.MsgBoxStyle.Exclamation, "OraScan")
Finally
' Close and Dispose OracleConnection object
con.Close()
con.Dispose()
End Try
End Sub
Private Sub Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Add.Click
Dim daOracle As New OracleDataAdapter
Dim InsertCommand As New OracleCommand
daOracle.InsertCommand = New OracleCommand
'1.Create connection object to Oracle database
Dim con As OracleConnection = New OracleConnection()
Try
If TableName.Text = "" Then
MsgBox("Please enter the tablename", MsgBoxStyle.Exclamation, "OraScan")
Exit Sub
End If
MsgBox(TableName.Text, MsgBoxStyle.Exclamation, "OraScan")
'2.Specify connection string
con.ConnectionString = ("Data Source=gema;User Id=dare; Password=rtae")
'3. Open the connection through ODP.NET
con.Open()
Dim cmd As OracleCommand = New OracleCommand
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "select * from user_objects where object_name='" + UCase(TableName.Text) + "' and object_type='TABLE'"
cmd.ExecuteNonQuery()
'You have to commit to be inserted into DB
'cmd.CommandText = "commit"
'cmd.ExecuteNonQuery()
MsgBox("Command executed successfully", MsgBoxStyle.Exclamation, "OraScan")
'Catch ex As Exception
'4.display if any error occurs
'MsgBox(ex.Message, Microsoft.VisualBasic.MsgBoxStyle.Exclamation, "OraScan")
Finally
' Close and Dispose OracleConnection object
con.Close()
con.Dispose()
End Try
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TableName.TextChanged
End Sub
End ClassThanks Lyndon, what I need is map any table someone create in Excel worksheet to Oracle repository.For example to map Excel worksheet(employee)table with its 2 columns to oracle table META_OBJECTTYPES(OBJECTTYPEID pk,OBJECTTYPENAME,OBJECTTYPEDESC, OBJECTMETATYPE,OBJECTDOMAIN). In my case I have 2 objecttypes 1)table(employee) and 2nd columns:employee_id,employee_name
--for inserting table info manually into DB:
INSERT INTO META_OBJECTS
(OBJECTKEY, OBJECTTYPEID,OBJECTNAME,OBJECTDESC)
VALUES
(META_OBJECTS_SEQ.NEXTVAL,
4, --TABLE
'employee',--notice this is table name from Excel worksheet
'Table to store employee info')
--for inserting columns info:
INSERT INTO META_OBJECTS
(OBJECTKEY, OBJECTTYPEID,OBJECTNAME,OBJECTDESC)
VALUES
(META_OBJECTS_SEQ.NEXTVAL,5,'employee_id or name','employee column')
notice above I insert manually Excel worksheet employee table with its two cols into oracle meta_objecttypes. What I want is VB to do this I mean if I go to Toad and erase what I insert in meta_objecttypes when I run vb, the program should map table employee with its 2 cols to Toad(DB). I hope it is clear now. Please refer to 1 st post for 3 other tables in DB -
Map Excel worksheet into Oracle tables in repository
I am new to VB2005. I am working on VB code that can map(read) any table from excel worksheet and load it into Oracle tables. Oracle tables that I have are: 1)META_OBJECTTYPES
(OBJECTTYPEID pk,OBJECTTYPENAME,OBJECTTYPEDESC, OBJECTMETATYPE,OBJECTDOMAIN).
2) META_OBJECTS(OBJECTKEY PK,OBJECTTYPEID FK,OBJECTNAME,OBJECTDESC).
3)META_OBJECTDEPENDENCIES(SRCOBJECTKEY FK, TGTOBJECTKEY FK,DEPENDENCYTYPE PK)
4)META_OBJECTATTRIBUTES
(OBJECTKEY FK, OBJECTATTRNAME PK,OBJECTATTRVALUE).
NOTICE META_OBJECTTYPES IS PARENT TO META_OBJECTS AND META_OBJECTS IS PARENT TO (META_OBJECTDEPENDENCIES AND META_OBJECTATTRIBUTES) AND ALL PARENT HAS 1 TO MANY REALTIONSHIP TO CHILD TABLES. For example, I have employee table in Excel worksheet that has two columns employee_id number, employee_name varchar2(50) I need my vb code map table name employee with its 2 columns into my 4 tables that I have in Oracle table repository,
My code so far just insert values into oracle tables in repository, but what is require is mapping table with contents into oracle tables. If my expanation isn't clear plz let me know.
Imports System
Imports System.Data
Imports Oracle.DataAccess.Client '
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
'System.Data.OracleClient lets you access Oracle databases.
Public con As System.Data.OracleClient.OracleConnection = NewSystem.Data.OracleClient.OracleConnection()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim range As Excel.Range
Dim rCnt As Integer
Dim cCnt As Integer
Dim Obj As Object
xlApp = New Excel.ApplicationClass
xlApp.Visible = True
xlWorkBook = xlApp.Workbooks.Open("c:\employee.xls")
xlWorkSheet = xlWorkBook.Worksheets("sheet1")
range = xlWorkSheet.UsedRange
For rCnt = 2 To range.Rows.Count 'rows in Excel start from row2
For cCnt = 1 To range.Columns.Count 'column in Excel start from col1
Obj = CType(range.Cells(rCnt, cCnt), Excel.Range)
MsgBox(Obj.value)
Next
Next
xlWorkBook.Close()
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim daOracle As New OracleDataAdapter
Dim InsertCommand As New OracleCommand
daOracle.InsertCommand = New OracleCommand
'1.Create connection object to Oracle database
Dim con As OracleConnection = New OracleConnection()
Try
'2.Specify connection string
con.ConnectionString = ("Data Source=gema;User Id=dare; Password=rtae")
'3. Open the connection through ODP.NET
con.Open()
Dim cmd As OracleCommand = New OracleCommand
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "insert into meta_objecttypes values (4,'TABLE', 'TABLES','ERstudio','Demo')"
cmd.ExecuteNonQuery()
'You have to commit to be inserted into DB
cmd.CommandText = "commit"
cmd.ExecuteNonQuery()
Finally
' Close and Dispose OracleConnection object
con.Close()
con.Dispose()
End Try
End Sub
Private Sub Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Add.Click
Dim daOracle As New OracleDataAdapter
Dim InsertCommand As New OracleCommand
daOracle.InsertCommand = New OracleCommand
'1.Create connection object to Oracle database
Dim con As OracleConnection = New OracleConnection()
Try
If TableName.Text = "" Then
MsgBox("Please enter the tablename", MsgBoxStyle.Exclamation, "OraScan")
Exit Sub
End If
MsgBox(TableName.Text, MsgBoxStyle.Exclamation, "OraScan")
'2.Specify connection string
con.ConnectionString = ("Data Source=gema;User Id=dare; Password=rtae")
'3. Open the connection through ODP.NET
con.Open()
Dim cmd As OracleCommand = New OracleCommand
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "select * from user_objects where object_name='" + UCase(TableName.Text) + "' and object_type='TABLE'"
cmd.ExecuteNonQuery()
'You have to commit to be inserted into DB
'cmd.CommandText = "commit"
'cmd.ExecuteNonQuery()
MsgBox("Command executed successfully", MsgBoxStyle.Exclamation, "OraScan")
Finally
' Close and Dispose OracleConnection object
con.Close()
con.Dispose()
End Try
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TableName.TextChanged
End Sub
End ClassDon't know if this will help you or not, but I have some code that will read from and Excel spreadsheet and put the data into a DataSet (i'm sure something else could be used).
string connectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\\testRead.xls;Excel 12.0;HDR=YES;IMEX=1";
DbProviderFactory factory =
DbProviderFactories.GetFactory("System.Data.OleDb");
DbDataAdapter adapter = factory.CreateDataAdapter();
DbCommand selectCommand = factory.CreateCommand();
selectCommand.CommandText = "SELECT * FROM [dogs$]";
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
selectCommand.Connection = connection;
adapter.SelectCommand = selectCommand;
DataSet cities = new DataSet();
adapter.Fill(cities);
GridView1.DataSource = cities;
GridView1.DataBind();
Your provider might be different; the one above is for Office 2007. The [dogs$] in the selectCommand.commandText is the name of the worksheet in Excel.
Hope this helps -
Can i load data type names from Excel worksheet ?
HI,
I have like 100+ fields in my excel worksheet. Is there any way to load these in XI while creating data types rather than typing each of them ?
thkshi, you cannot get de DT, but you can get the MT developing a SAP module and call it from file sender adaptse.
see this blog that will hekp you to understand better.
i develope my own read xls file module as generic. it return
<ROW>
.....<col1>
....<col2>
<ROW>
/people/sap.user72/blog/2005/07/04/read-excel-instead-of-xml-through-fileadapter
thanks
rodrigo -
How to create a New Excel File programmatically
Hi !
I am documenting acquired data continuously in an excel file, what I need to do is to create a new excel file automatically when the size of the previous file exceeds a certain limit lets say 1MB.
I have tried using the simple 'Create/Open File' function and the 'Write to Spreadsheet File' function to create the new excel file. I does create a file but when I open the file it says the format of the file is not what you have opened it with.
Also when the new file is created, three new worksheet are to be added programmatically with pre-defined worksheet name and also Column headers for each of the worksheet are to be added.
I am also using 'Labview Report Generation Toolkit for Office'.
Regards,
Reeves
Solved!
Go to Solution.@ Aldo A
Thanks for the reference to tutorial, I didn't know about them. They are useful in general but unfortunately they don't answer the problem of creating an altogether new excel file programmatically.
@ ben64
The template thing simplifies the issue of formatting the new file. But I am still working on the new excel file creation challenge.
Let me put my problem in a different way.
Certain data is being acquired continually and is being written to a certain excel file, when the size of the file exceeds lets say 1MB the program should start saving the data in a NEW FILE instead of the previous file.
I have attached the VI to explain what I am trying to achieve here.
Reeves
Attachments:
New Microsoft Office Excel Worksheet.zip 30 KB -
Data open/save-as in Excel worksheet
Hi all,
i created implement one diagram into my existing vi for opening and saving the data in microsoft excel worksheet but it doesn't work. I have been looking through Excel Macro Example but couldn't make sense of it much.
still new in this and will really appreciate if someone can give me any insights for my problem.
thank you
Attachments:
Excel messedup.vi 40 KBYou need to learn about data dependency!
In your VI you are performing three actions simultaneously:
Reading from an instrument and collecting data and then writing it to a text file in tab-delimited format, and then reading that file, but not doing anything with it.
Opening an Excel workbook and then a worksheet, and then closing the reference to the workbook.
Opening the Excel application and then closing it the reference to it.
Why do you need to open/close Excel if you're already writing the data to a text file in tab-delimited format? Excel can read this directly.
I would strongly suggest going through the LabVIEW tutorials that discuss data dependency and how to code in LabVIEW. -
Copy a table in Safari and paste special, as text, to an Excel worksheet
I am attempting to write Applescript code to copy a table in Safari and paste special, as text, to an Excel worksheet.
When I perform the operation manually, all the rows of the Safari table are pasted into Excel in a single column, i.e. after all of the data in a row of a table is pasted vertically into Excel,the next row is pasted in the next open cell below in the same column, as I need it.
When I use the applescript line..."paste special on worksheet format text" Excel pastes the table data in rows AND columns , like the table looks in Safari, but I do not want it pasted this way.
Any ideas on how to get my Applescript code to perform the same manual operation?
Thanks!I do not know what Excel you have, but to copy a table from a Safari's page, you could use the table tags of the page's source to get the table you want.
That is, use text item delimiters.
deivy -
Unable to work in embedded Excel worksheets, errors out, and forced into task manager
I am unable to work in Excel worksheets embedded Word 2010. I continually get the following errors/warnings: "Microsoft Word can't start the application required to open this object. An error occurred and this feature
is no longer functioning properly. Would you like to repair this feature now?" & " "The program used to create this object is Excel. That program is either not installed on your computer or it is not responding. To edit this object, install Excel or ensure
that any dialog boxes in Excel are closed." After these messages, I click to repair Word and upon a fresh reboot ...the same thing over and over and over again. After going through this procedure, I usually get another warning message regarding "OLE...." which
pops up continually until I "Ctrl-Alt-Del" and stop the Excel item in processes.
Currently I'm on Win7 64 Enterprise OS and 32 Bit Office 2010, Solutions that I have tried: disabling add-ins, updating, installing service packs with no success...
HELP PLEASEEEEEE!!!!Hi,
You disable COM Add-in in Excel or Word ?
This problem might be related to some third-party in Excel,
Close word, and start Excel worksheet.
In Excel, click File menu, click Options >
Add-ins, click Go button in the Manage:
COM Add-ins.
Check if there has any add-ins, clear the checkbox to disable them.
Start Word and try to edit your embedded files. They should now work without a problem.
If the problem does not appear, restart Excel and add one check back each time to the list of Add-In, restart the Excel program, and
repeat the above procedure. Once the issue reappears again, we can determine which add-in causes this problem and then disable it.
Best Regards.
William Zhou
TechNet Community Support -
How to fix the row-height in excel using ole2
hi
I want to fix row height in excel using ole2.
i wrote the below code but no effect. please help me.
Arg := ole2.create_arglist;
ole2.add_arg(Arg,1);
rrow := ole2.get_obj_property(WorkSheet,'Rows',Arg);
ole2.destroy_arglist(arg);
ole2.set_property(rrow,'Height',50);
kanishIt's solved
ole2.set_property(rrow,'RowHeight',30);
kanish -
Can I prefill forms from an excel worksheet
I am looking for an alternative to typing or copy and pasting names onto forms that I distribute to clients. I am wondering if there is a way I can link an excel worksheet or export data from a document to prefill on each form. Something similar to a mail merge of some type.
Thank you!Probably the easiest way to do this is to import the data in Acrobat from a tab-delimited file that you export from Excel. The first row must contain the exact field names and subsequent rows contain one or more records. When you import, you will be able to select a row of data and it will then be used to populate the form. So the workflow is:
1. Begin by setting up a worksheet to include the field names of the PDF form as the first row.
2. Populate the worksheet with one or more records.
3. Save worksheet as a tab-deliimited text file.
4. Open the form in Acrobat
5. Import a row of data form the text file. E.g., Tools > Forms > More Form Options > Import Data > [select text file] > [select row] -
Function module to download to Excel worksheet.
Hi All,
Need a function module to download internal table data to exact worksheet number in the excel sheet, that too it sholud be appended from some row number.
The regular function modules are helping just to create an excel sheet and fill data, But not to append to exact work sheet, like work sheet no.5 or 6 of excel on presentation.
Thanks in Advance,
Regards,
YogeshDownload a report to excel with format (border, color cell, etc)
Try this program...it may help you to change the font ..etc.
Code:
REPORT ZSIRI NO STANDARD PAGE HEADING.
this report demonstrates how to send some ABAP data to an
EXCEL sheet using OLE automation.
INCLUDE OLE2INCL.
handles for OLE objects
DATA: H_EXCEL TYPE OLE2_OBJECT, " Excel object
H_MAPL TYPE OLE2_OBJECT, " list of workbooks
H_MAP TYPE OLE2_OBJECT, " workbook
H_ZL TYPE OLE2_OBJECT, " cell
H_F TYPE OLE2_OBJECT. " font
TABLES: SPFLI.
DATA H TYPE I.
table of flights
DATA: IT_SPFLI LIKE SPFLI OCCURS 10 WITH HEADER LINE.
*& Event START-OF-SELECTION
START-OF-SELECTION.
read flights
SELECT * FROM SPFLI INTO TABLE IT_SPFLI UP TO 10 ROWS.
display header
ULINE (61).
WRITE: / SY-VLINE NO-GAP,
(3) 'Flg'(001) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
(4) 'Nr'(002) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
(20) 'Von'(003) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
(20) 'Nach'(004) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
(8) 'Zeit'(005) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP.
ULINE /(61).
display flights
LOOP AT IT_SPFLI.
WRITE: / SY-VLINE NO-GAP,
IT_SPFLI-CARRID COLOR COL_KEY NO-GAP, SY-VLINE NO-GAP,
IT_SPFLI-CONNID COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
IT_SPFLI-CITYFROM COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
IT_SPFLI-CITYTO COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
IT_SPFLI-DEPTIME COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP.
ENDLOOP.
ULINE /(61).
tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = TEXT-007
EXCEPTIONS
OTHERS = 1.
start Excel
CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'.
PERFORM ERR_HDL.
SET PROPERTY OF H_EXCEL 'Visible' = 1.
CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING #1 = 'c:\kis_excel.xls'
PERFORM ERR_HDL.
tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = TEXT-008
EXCEPTIONS
OTHERS = 1.
get list of workbooks, initially empty
CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
PERFORM ERR_HDL.
add a new workbook
CALL METHOD OF H_MAPL 'Add' = H_MAP.
PERFORM ERR_HDL.
tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = TEXT-009
EXCEPTIONS
OTHERS = 1.
output column headings to active Excel sheet
PERFORM FILL_CELL USING 1 1 1 'Flug'(001).
PERFORM FILL_CELL USING 1 2 0 'Nr'(002).
PERFORM FILL_CELL USING 1 3 1 'Von'(003).
PERFORM FILL_CELL USING 1 4 1 'Nach'(004).
PERFORM FILL_CELL USING 1 5 1 'Zeit'(005).
LOOP AT IT_SPFLI.
copy flights to active EXCEL sheet
H = SY-TABIX + 1.
PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID.
PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID.
PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM.
PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO.
PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME.
ENDLOOP.
changes by Kishore - start
CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
CALL METHOD OF H_EXCEL 'Worksheets' = H_MAPL." EXPORTING #1 = 2.
PERFORM ERR_HDL.
add a new workbook
CALL METHOD OF H_MAPL 'Add' = H_MAP EXPORTING #1 = 2.
PERFORM ERR_HDL.
tell user what is going on
SET PROPERTY OF H_MAP 'NAME' = 'COPY'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = TEXT-009
EXCEPTIONS
OTHERS = 1.
output column headings to active Excel sheet
PERFORM FILL_CELL USING 1 1 1 'Flug'(001).
PERFORM FILL_CELL USING 1 2 0 'Nr'(002).
PERFORM FILL_CELL USING 1 3 1 'Von'(003).
PERFORM FILL_CELL USING 1 4 1 'Nach'(004).
PERFORM FILL_CELL USING 1 5 1 'Zeit'(005).
LOOP AT IT_SPFLI.
copy flights to active EXCEL sheet
H = SY-TABIX + 1.
PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID.
PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID.
PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM.
PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO.
PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME.
ENDLOOP.
changes by Kishore - end
disconnect from Excel
CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING #1 = 'C:\SKV.XLS'.
FREE OBJECT H_EXCEL.
PERFORM ERR_HDL.
FORM FILL_CELL *
sets cell at coordinates i,j to value val boldtype bold *
FORM FILL_CELL USING I J BOLD VAL.
CALL METHOD OF H_EXCEL 'Cells' = H_ZL EXPORTING #1 = I #2 = J.
PERFORM ERR_HDL.
SET PROPERTY OF H_ZL 'Value' = VAL .
PERFORM ERR_HDL.
GET PROPERTY OF H_ZL 'Font' = H_F.
PERFORM ERR_HDL.
SET PROPERTY OF H_F 'Bold' = BOLD .
PERFORM ERR_HDL.
ENDFORM.
*& Form ERR_HDL
outputs OLE error if any *
--> p1 text
<-- p2 text
FORM ERR_HDL.
IF SY-SUBRC <> 0.
WRITE: / 'Fehler bei OLE-Automation:'(010), SY-SUBRC.
STOP.
ENDIF.
ENDFORM. " ERR_HDL
Please note that this example maybe slow at filling the excel table
(perhaps four fields per second on a 900 MHz machine - almost 30 seconds
for a short example).
To get the data on properties and methods - there is a bit of smoke and mirrors
going on here; they are EXCEL properties and methods, not sap ones - so you need
to look at excel help to determine how a particular function is structured. then
build the block in sap, as shown in the example.
If you only want to transfer the data to Excel like when you transfer the data from
ALV to Excel simply use the Function Modules:
XXL_SIMPLE_API
If you want more modifications when you transfer it to Excel use:
XXL_FULL_API -
I am currently hiding an entire row via ABAP classes using 'style="display:none"' however there is a thick gridline where the hiding row is. Has anyone encountered this before and is there a better way to hide rows? I have hidden columns using 'style="display:none"' and the report looks ok, but hiding rows this way leaves thick gridlines where the rows use to be.
markIt seems the problem is the method for c_cell_td_extend will only hide the <TD>, but the <TR> will still exist, thus the gridline displaying in the report. does anyone know of a way to clear the <TR> as well for web templates?
mark
Message was edited by:
Mark Siongco
Maybe you are looking for
-
I'm running Windows 7 on a laptop. I have downloaded Adobe Air version 13.0.0.83 successfully. When I click on the Setup.exe file the program will start the install process, but it will immediately shutdown with an error message. I have tried this
-
How to see photos of people who make comments in facebook?
I can´t see the photos of people who make comments in a webpage of facebook.
-
I could see a small increase; but $1.01?! Trying to justify this increase by saying the cost of phones is increasing and that you provide free shipping, etc., is ridiculous. I have worked in purchasing and various other departments at companies whe
-
Native AIR extensions in Flash Pro
I understand that AIR 3.X for Android supports "AIR Native Extensions" written in Java. Has anyone successfully used one from Flash Pro. I'd really love to see a working example from one of the Adobe samples such as their Gyroscope example at: http
-
Can't purchase from iTunes since OS 10.3.9 Update
Ever since I updated my OS to 10.3.9, my iTunes 4.9 gives me an error message when I try to purchase a song. The error message reads, you must have version 6.0 to purchase this song but I can't upgrade since my G3 is running at 400 mHz. Help!!