[ Shavgan @ 04.03.2012. 20:33 ] @
Pozdrav svima, da li je neko radio automatizaciju Excela preko COM-a u .NET-u ( C#), ako jeste nadam se da je radio i sljedece, a to je kako da nakon sto odredim Range["A2", "G40"] unutar active worksheet-a, kako da određene vrijednosti spremim u npr, prva vrijednost koju upisujem u worksheet ide u A2 ćeliju, druga u B2 i sve do G2, nakon sto prodjem taj red (od A2 do G2), da pređem u drugi. Stvar je u tome da je to veoma lako uraditi kao sto sam uradio u source-u kojeg sam postavio dole. Ali mene zanima kako da to sve stavim u jedan foreach i u svakom prolazu da mi uzme za prvu vrijednost A2, u drugom prolazu B2 itd., sve do G2. Nadam se da sam realno opisao situaciju..


namespace CreatioExcelUpdatesColAndRows
{
public partial class Form1 : Form
{
Excel.Application oExcAppl;
Excel.Workbook oWrkBook;
Excel.Worksheet oWrkSheet;
Excel.Range oRange;

public Form1( )
{
InitializeComponent ( );
}

private void button1_Click( object sender, EventArgs e )
{
try
{
oExcAppl = new Excel.Application ( );
oWrkBook = ( Excel.Workbook ) oExcAppl.Workbooks.Open ( @"C:\Templates\Office\textDocument.xlsx" );
oWrkSheet = ( Excel.Worksheet ) oWrkBook.ActiveSheet;
oExcAppl.Visible = true;
oExcAppl.UserControl = true;
object oMising = Type.Missing;
string sValue;

// Primjeri koristenja Range
oWrkSheet.Range [ "A2 : G40" ].Value2 = sValue;

}
catch ( Exception ex)
{
MessageBox.Show ( ex.Message, "Error open excel document !");
}

try
{
//INSERT U CELLS
oWrkSheet.Cells [ 2, 1 ] = "Information of documents";
oWrkSheet.Cells [ 2, 2 ] = "Explaing documents pr ";
oWrkSheet.Cells [ 2, 3 ] = "04/03/2012";
oWrkSheet.Cells [ 2, 4 ] = "ImeIPrezime";
oWrkSheet.Cells [ 2, 5 ] = "001 -DN/2012";
oWrkSheet.Cells [ 2, 6 ] = "Write";
oWrkSheet.Cells [ 2, 7 ] = "001";


//PORAVNAVA ĆELIJE PO POTREBI
oRange = oWrkSheet.get_Range ( "A2", "G2" );
oRange.EntireColumn.AutoFit ( );

}
catch ( Exception ex )
{
MessageBox.Show ( ex.Message );
}
finally
{
if ( oExcAppl != null )
{
Marshal.ReleaseComObject ( oExcAppl );
oExcAppl = null;
}
}


}
}
}
Hvala vam svima unaprijed..
[ Shavgan @ 13.03.2012. 08:13 ] @
public void FormatingCells( Excel.Workbook oWorkbook, string sCellName, string sCellValue )
{
Excel.Worksheet oWorkSheet = oWorkbook.ActiveSheet as Excel.Worksheet;

int iNumberofColumns = oWorkSheet.Cells.Find ( "*", Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole,
Excel.XlSearchOrder.xlByColumns, Excel.XlSearchDirection.xlPrevious,
false, false, Type.Missing ).Column;

int iNumberofRows = oWorkSheet.Cells.Find ( "*", Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole,
Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlPrevious,
false, false, Type.Missing ).Row;

for ( int i = 1; i <= iNumberofRows; i++ )
{
for ( int j = 0; j < iNumberofColumns; j++ )
{
string s = oColumns.GetValue ( j ).ToString ( );
string sCurrentCell = s + i.ToString ( );
string sNameCells = null;
try
{
sNameCells = oWorkSheet.Range [ sCurrentCell.ToString ( ) ].Value2;
}
catch { }

if ( sNameCells != null && sNameCells == sCellName )
{
oWorkSheet.Cells [ i + 1, s ] = sCellValue;
sNameCells = null;
}
}
}
oRange = oWorkSheet.get_Range ( "A2", "I40" );
oRange.EntireColumn.AutoFit ( );
}

Zivjeli...
[ vXv_aliGator @ 22.03.2012. 23:17 ] @
Dobro bi bilo da potrazis AsposeCells for .NET neces se pokajati.
[ deerbeer @ 28.03.2012. 13:13 ] @
Ako vec koristi xlsx fajlove neka batali interop com automation i nek uzme openxml za excell kao npr. ovo :
http://social.msdn.microsoft.c...dd-b610-44c9-b60e-fa8ef6c24978
[ Shavgan @ 23.04.2012. 21:01 ] @
Svaka čast obojici na prijedlozima..uzet ću malo da čitam o ovim stvarima, a vi ako imate nekih primjera koje ste radili, npr. export excel worksheet data to xml....bio bih zahvalan, uz činjenicu da exportujemo barem 5 sheet-a iz jednog wokbook-a!! Hvala unaprijed..pozdrav..