Put an array of values to a column object.
VB: Function SetData(data As ByVal Object, [ nOffset As ByVal Object ] ) As Boolean
C++: bool SetData(_variant_t data, _variant_t nOffset )
C#: bool SetData(var data, var nOffset )
A boolean value with true indicating set data successfully and false indicating it is failed.
Please run an Origin project firstly, and active a worksheet with property number of columns to receive the data. The examples will connect to the running Origin, and you will see the result of the examples in Origin.
You can also refer DataFormat for sending and getting different types of data array to Origin column.
to Send Integer values to Origin Set Origin columns' data format as DF_CHAR, DF_LONG, DF_BYTE and DF_USHORT, and then send property Integer data to these columns. Finally, save the data as an opj file in the Origin User folder.
Public Sub SetData() Dim app As Origin.ApplicationSI Dim Wks As Origin.Worksheet Dim s1Data(1 To 100) As Integer Dim s4Data(1 To 100) As Long Dim u1Data(1 To 100) As Byte Dim u2Data(1 To 100) As Long Dim ii As Integer For ii = 1 To 100 s1Data(ii) = ii - 10 s4Data(ii) = ii * 100 - 1000 u1Data(ii) = ii u2Data(ii) = ii * 10 Next Set app = New Origin.ApplicationSI 'Connect to the running Origin Set Wks = app.FindWorksheet("") 'Select the active worksheet 'Send Integer (1 byte) values to Origin Wks.Columns(0).DataFormat = DF_CHAR Wks.Columns(0).SetData (s1Data) 'Send Integer (4 bytes) values to Origin Wks.Columns(1).DataFormat = DF_LONG Wks.Columns(1).SetData (s4Data) 'Send Integer (unsigned 1 byte) values to Origin Wks.Columns(2).DataFormat = DF_BYTE Wks.Columns(2).SetData (u1Data) 'Send Integer (unsigned 2 bytes) values to Origin Wks.Columns(3).DataFormat = DF_USHORT Wks.Columns(3).SetData (u2Data) 'Save the project to Origin User folder app.Save (app.Path(APPPATH_USER) + "COMServerExamples_CI.opj") End Sub
to Send Floating-point values to Origin Set Origin columns' data format as DF_FLOAT and DF_DOUBLE, and then send property Floating-point data to these columns. Finally, save the data as an opj file in the Origin User folder.
Public Sub SetData() Dim app As Origin.ApplicationSI Dim Wks As Origin.Worksheet Dim f4Data(1 To 100) As Single Dim d8Data(1 To 100) As Double Dim ii As Integer For ii = 1 To 100 f4Data(ii) = ii * 0.01 - 1.23 d8Data(ii) = ii / 12.8 - 0.75 Next Set app = New Origin.ApplicationSI Set Wks = app.FindWorksheet("") 'Send Numeric (float 4 bytes) values to Origin Wks.Columns(0).DataFormat = DF_FLOAT Wks.Columns(0).SetData (f4Data) 'Send Numeric (double 8 bytes) values to Origin Wks.Columns(1).DataFormat = DF_DOUBLE Wks.Columns(1).SetData (d8Data) 'Save the project to Origin User folder app.Save (app.Path(APPPATH_USER) + "COMServerExamples_CF.opj") End Sub
to Send Complex values(1D Array) to Origin Set the Origin column's data format as DF_COMPLEX, and then send complex values via 1D double array to the column. Finally, save the data as an opj file in the Origin User folder.
When sending complex as 1D array, the size of the array must be twice the number of values and each must be packaged with the first double value being the real part and the next being the corresponding imaginary part.
Public Sub SetData() Dim app As Origin.ApplicationSI Dim Wks As Origin.Worksheet Dim dData(1 To 100) As Double 'allocate twice the needed size Dim ii As Integer For ii = 1 To 50 dData(ii * 2 - 1) = ii 'real dData(ii * 2) = ii * 0.1 'imaginary Next Set app = New Origin.ApplicationSI Set Wks = app.FindWorksheet("") 'Send Complex (16 bytes) values to Origin Wks.Columns(0).DataFormat = DF_COMPLEX Wks.Columns(0).SetData (dData) 'Save the project to Origin User folder app.Save (app.Path(APPPATH_USER) + "COMServerExamples_CC1.opj") End Sub
to Send Complex values(2D Array) to Origin Set the Origin column's data format as DF_COMPLEX, and then send 2D DOUBLE data array to the column. Finally, save the data as an opj file in the Origin User folder.
When send 2D array, Origin simply take the first column as real and the 2nd column as imaginary.
Public Sub SetData() Dim app As Origin.ApplicationSI Dim Wks As Origin.Worksheet Dim dData(1 To 50, 1 To 2) As Double 'using 2D array Dim ii As Integer For ii = 1 To 50 dData(ii, 1) = ii 'real dData(ii, 2) = ii * 0.1 'imaginary Next Set app = New Origin.ApplicationSI Set Wks = app.FindWorksheet("") 'Send Complex (16 bytes) values to Origin, use col(2) so you can send 'both 1D (col(1) in that example) and 2D to compare Wks.Columns(1).DataFormat = DF_COMPLEX Wks.Columns(1).SetData (dData) 'Save the project to Origin User folder app.Save (app.Path(APPPATH_USER) + "COMServerExamples_CC2.opj") End Sub
to Send Text to Origin Set the Origin column's data format as DF_TEXT, and then send property string array to the column. Finally, save the data as an opj file in the Origin User folder.
Public Sub SetData() Dim app As Origin.ApplicationSI Dim Wks As Origin.Worksheet Dim tData(1 To 100) As String Dim ii As Integer For ii = 1 To 100 tData(ii) = "abc" + Str(ii) Next Set app = New Origin.ApplicationSI Set Wks = app.FindWorksheet("") 'Send Text (String Array) to Origin Wks.Columns(0).DataFormat = DF_TEXT Wks.Columns(0).SetData (tData) 'Save the project to Origin User folder app.Save (app.Path(APPPATH_USER) + "COMServerExamples_CC1.opj") End Sub
to Send Integer values to Origin
using Origin; static void SetData() { byte[] u1Data = new byte[100]; sbyte[] s1Data = new sbyte[100]; ushort[] u2Data = new ushort[100]; for (int ii = 0; ii < 100; ii++) { u1Data[ii] = (byte)(ii * 2); s1Data[ii] = (sbyte)(ii - 10); u2Data[ii] = (ushort)(ii * 123); } Origin.ApplicationSI app = new Origin.ApplicationSI(); //Connect to the running Origin Worksheet wks = app.FindWorksheet(""); //Select the active worksheet //Send Unsigned 1 byte Integers to Origin wks.Columns[0].DataFormat = COLDATAFORMAT.DF_BYTE; wks.Columns[0].SetData(u1Data, 0); //Send Sigend 1 byte Integers to Origin wks.Columns[1].DataFormat = COLDATAFORMAT.DF_CHAR; wks.Columns[1].SetData(s1Data, 0); //Send Unsigned 2 bytes Integers to Origin wks.Columns[2].DataFormat = COLDATAFORMAT.DF_USHORT; wks.Columns[2].SetData(u2Data, 0); //Save the project to Origin User folder app.Save(app.path(Origin.APPPATH_TYPES.APPPATH_USER) + "COMServerExamples_CI.opj"); }
to Send Floating-point values to Origin
using Origin; static void SetData() { float[] f4Data = new float[100]; double[] d8Data = new double[100]; for (int ii = 0; ii < 100; ii++) { f4Data[ii] = (float)(ii * 0.01 - 1.23); d8Data[ii] = ii / 12.8 - 0.75; } Origin.ApplicationSI app = new Origin.ApplicationSI(); Worksheet wks = app.FindWorksheet(""); //Send Numeric (float 4 bytes) values to Origin wks.Columns[0].DataFormat = COLDATAFORMAT.DF_FLOAT; wks.Columns[0].SetData(f4Data, 0); //Send Numeric (double 8 bytes) values to Origin wks.Columns[1].DataFormat = COLDATAFORMAT.DF_DOUBLE; wks.Columns[1].SetData(d8Data, 0); //Save the project to Origin User folder app.Save(app.path(Origin.APPPATH_TYPES.APPPATH_USER) + "COMServerExamples_CF.opj"); }
to Send Complex values(1D Array) to Origin
Using Origin; static void SetData() { double[] dData = new double[100]; for (int ii = 0; ii < 50; ii++) { dData[ii * 2] = ii; //real dData[ii * 2 + 1] = ii * 0.1; //imaginary } Origin.ApplicationSI app = new Origin.ApplicationSI(); Worksheet wks = app.FindWorksheet(""); //Send Complex (16 bytes) values to Origin wks.Columns[0].DataFormat = COLDATAFORMAT.DF_COMPLEX; wks.Columns[0].SetData(dData, 0); //Save the project to Origin User folder app.Save(app.path(Origin.APPPATH_TYPES.APPPATH_USER) + "COMServerExamples_CC1.opj"); }
to Send Complex values(2D Array) to Origin
Using Origin; static void SetData() { double[,] dData = new double[100, 2]; for (int ii = 0; ii < 100; ii++) { dData[ii, 0] = ii; //real dData[ii, 1] = ii * 0.1; //imaginary } Origin.ApplicationSI app = new Origin.ApplicationSI(); Worksheet wks = app.FindWorksheet(""); //Send Complex (16 bytes) values to Origin wks.Columns[0].DataFormat = COLDATAFORMAT.DF_COMPLEX; wks.Columns[0].SetData(dData, 0); //Save the project to Origin User folder app.Save(app.path(Origin.APPPATH_TYPES.APPPATH_USER) + "COMServerExamples_CC2.opj"); }
to Send Text to Origin
Using Origin; static void SetData() { string[] tData = new string[100]; for (int ii = 0; ii < 100; ii++) { tData[ii] = "abc" + ii.ToString(); } Origin.ApplicationSI app = new Origin.ApplicationSI(); Worksheet wks = app.FindWorksheet(""); //Send Text (String Array) to Origin wks.Columns[0].DataFormat = COLDATAFORMAT.DF_TEXT; wks.Columns[0].SetData(tData, 0); //Save the project to Origin User folder app.Save(app.path(Origin.APPPATH_TYPES.APPPATH_USER) + "COMServerExamples_CT.opj"); }
8.0SR2
GetData | DataFormat | Application.PutWorksheet | Application.GetWorksheet | Worksheet.SetData | Worksheet.GetData