Insert Row In Excel Very Slow?
Oct 15, 2011using System;
using System.Collections.Generic;
using System.ComponentModel;
[code].....
using System;
using System.Collections.Generic;
using System.ComponentModel;
[code].....
I'm developing a piece of a system that basically migrates data from one set of tables to another set. Everything works fine, but I've decided to employ transactions instead of just failing on things that are partially completed. (That is, if some exception occurs, I want to rollback instead of having partial data migrated.)
I have a service (in the 3-tier architecture way, not web) which begins a transaction on the data access layer. The data context is shared in the data access class which contains many methods. Those methods use various LINQ-to-SQL techniques to update/insert/delete. All the LINQ-to-SQL "selects" are within CompiledQueries. [code]...
I have to generate about 800 excel files from an access database.
For the first 10-15 of them it's working nice, a few seconds/excel file but it's constantly taking longer, at the 150th excel file it's taking 10 minutes.
Here is my code:
It's doing this for each nrliste in the access table (about 800 of them)
Dim lista = From ls In Liste _
Where ls!Concatenare = nrliste(i) _
Select ls
[Code].....
am converting some excel macro to vb.net, and it's almost done, but when i am looping throught +- 3000 rows and checking with 2 sheets it takes about 3 hours !
Dim Site1 As String
Dim Site2 As String
Dim Group1 As String
[code].....
This method for writing a listview to an Excel spreadsheet is very slow.
Public Sub ListviewToActiveWorksheet(ByVal lv As System.Windows.Forms.ListView)
Dim mSheet As Excel.Worksheet
Dim mRow As Integer = 1
[Code].....
We have an automatic process that opens a template excel file, writes rows of data, and returns the file to the user. This process is usually fast, however I was recently asked to add a summary page with some Excel formulas to one of the templates, and now the process takes forever.
It successfully runs with about 5 records after a few minutes, however this week's record set is almost 400 rows and the longest I've let it run is about half an hour before cancelling it. Without the formulas, it only takes a few seconds to run.
Is there any known issues with writing rows to an Excel file that contains formulas? Or is there a way to tell Excel not to evaluate formulas until the file is opened by a user?
The formulas on the summary Sheet are these:
' Returns count of cells in column where data = Y
=COUNTIF(Sheet1!J15:Sheet1!J10000, "Y")
=COUNTIF(Sheet1!F15:Sheet1!F10000, "Y")
[Code].....
Is there any way to insert an existing macro into a existing excel file without using the excel library ? I need this to set the excel to print whole work book .I cannot use excel library because it will be done online in the server where installation of excel is not possible. I can however use the c#.net coding . I am using NPOI to generate the excel.
the macro is given below
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If printed = False Then
Cancel = True
[Code]....
I'm using a background worker to in an Excel VSTO application to throw up a progress dialog box with a status bar and a cancel button to escape from long running calculations. It's working really well, except for one issue. I'd like to use a Modal Dialog, so that the UI behind the dialog gets locked up, instead of a Modeless Dialog. If I use .ShowDialog() instead of .Show(), everything is great until you hit the Cancel button on the form. Following things in the debugger, the cancellation happens, it just takes somewhere in range of 30 seconds. If I use .Show() on my form, then the cancellation occurs immediately as it should.
[Code]...
In my vb.net applications, I do a lot of reading/writing to excel files.This is one of the simpler bits of code I use:
Dim objApp As Object, objBook As Object, objSheet As Object
objApp = CreateObject("Excel.Application")
objBook = objApp.Workbooks.Open("C:maid2cleanM2CPrinters.xls")
objSheet = objBook.Worksheets.Item(1)
[code]....
It's never been fast but in the last few weeks it seems to take forever.The "createobject" line is taking 4 seconds to run. is there any way I can find out why it's slowed down?
This is my code to add a row to an excel file:
Public Sub Add_Records()
'==========================================================================
' Run an INSERT INTO command to add new records to the workbook.
'==========================================================================
Dim Variable As String
Variable = "15000"
Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn1)
[Code] .....
It works fine as long as the variable Variable is a number. If I make it a string it doesnt work.
I am taking a pre-existing excel spreadsheet and inserting a blank row at the top. This part works, the part I am having problem is the fact that based on the code I have, I have to open the spreadsheet so when you execute the code the spreadsheet opens. Then when done, close it. When I try to close it wants me to save the document, even if I call the save method. This whole process should happen behind the scenes so I really don't want the spreadsheet opening.
See code below.
moApp.Visible = True
oWB = moApp.Workbooks.Open("I: estcsv.xls")
oWB.Sheets("testcsv").Rows("1:1").Select()
moApp.Selection.insert(xl.XlDirection.xlDown)
oWB.Save()
oWB.Close()
'When call the close, it still asks me to save the spreadsheet even though I called oWB.Save above.
I am tring to insert a row or shift all the row down one; depending how you want ot look at it. In oter words I have data in rows one through 10 and I want to move it down so that I can put a headings in row one.In Excel VBA I would do something like:Rows("1:1").SelectSelection.Insert Shift:=xlDownBut you can not use exactly this code in VB.Net and I cannot figure out how to do it here.Here is code that I used, succsessfuly to widing a cell:Code: rng = xlsSheet.Application.Range("D:D") rng.ColumnWidth = 17.0
View 3 Replies1.) error on saving the data into excel sheet when the program is execute nonquery the bold line below
Try
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim myCommand As New System.Data.OleDb.OleDbCommand
[code].....
i am using the following code in vb.net wich opens me the folder to select excel but i dont know how to import these values to sql.
[Code]...
How could i insert blank row in excel using vb dot.code?
View 1 Repliesi am generation a excel sheet from vb.net and have a question on inserting a forumla from vb.net into an excel sheet.
I am creating this sheet out of vb.net but with a statement like this:
worksheet.cells (1,10) = "myvalue"
For my formula i need the read cellnam like "A1". But i have only the value cells (x,y). How can i get the real cellname for my formula or how am i able to insert a formula with the given information (cells(1,1))?
I want to insert worksheet object on a VBA form for AutoCad. I had done it before. But now I can not recall which object was used for this.
View 2 RepliesI created an add-in for excel with vsto, I put the image in the folder "Resources" of the project. Now I put the image on the sheet as in the example
I tried this way but don't works
mySheet.Pictures.Insert(Global.Myaddin.My.Resources.Image1)
mySheet.Cells(12, 10) = Global.Myaddin.My.Resources.Image1
mySheet.Shapes.AddPicture...???
Insert+Center Image into Excel?
View 5 RepliesI'm using Visual Studio 2010 (VB.Net) and Open XML SDK 2.0. How do you insert a formula into an Excel 2010 worksheet? When I do this I also wish to set the CellValue property of the cell to a DBNull or EmptyString to force Excel to recalculate the cell when the user opens the workbok.
View 1 Replieshow to insert a row into an excel file via vb.net?
I am familiar on how to do this inside the spreadsheet using vba - but not certain how to accomplish this within vb.Net.
I would like to import the excel in to the sql server using vb.net. how can i do it? Another question is how can i execute the DTS using vb.net
View 6 RepliesOVERVIEW:I am currently having an issue loading a large number of rows into Excel. I say large because the attached code in fact correctly inserts 50 rows into an Excel worksheet, however, as the number of rows increases to no more than500 rows the data is not inserted into the worksheet. No error is thrown by .net and the .xls filesize actually shows an increase in size, however, when the file is opened there are no rows in the spreadsheet..... Then, when the .xls file is closed the filesize is once again reduced.
Again, the code works for a small number of rows. Are there any known bugs with the OleDB driver for Excel?ADDITIONAL THOUGHTS:I have tried inserting rows to both Excel 2003 and 2007, same issue.I have tried closing the connection after each insert.... performance if horrible and it does not fix the problem.I have wrapped the ExecuteNonQuery in a transaction.... no go....
[code]...
The following works:
string connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + str_excelFileOnLocalMachineInReports + ";";
connectionString += "Extended Properties=Excel 8.0;";
OleDbCommand myCommand = new OleDbCommand("Select * from [pFACTData$];");
[Code]..
But as soon as I change any of the numbers to doubles (e.g. 23.32457) I get a crash (it doesnt crash on the insert, it crashes on the next one:)The INSERT INTO statement contains the following unknown field name: '23#2345'. Make sure you have typed the name correctly, and try the operation again.
I have this piece of code which picks the data in an excel file. At the moment i have the data into the dt table. how do i write the data in dt to FECHO_UNICRE table at the UTLT.accdb database? I want to fill the table just after deleting the existing records.
Octavio
Private Sub Unicre_Calculos_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'Try
[Code]....
I need to import data from Excel into a MySQL 5 database. The format of the column in excel is set to "Time". the field value looks something like this:
17:20:00 If I do this in my vb.net
strTimeIn1 = Trim(jobdt.Rows(j).Item(7).ToString)
I get this in my Immediate window when debugging:
"12/30/1899 4:10:00 PM"
what's the correct way to convert that string to a time value so I can insert into a datetime field in my database with no issues.
what to do as i used Openrowset but it didnot works well the sheet contain variable no of columns.
Dim sConnectionString1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & exfname & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""[code]...
This works well when having about 240 columns, but if it exceed to 256 it gives error and the connection would not get open.So i decided to use bulk insert into a temp table,how to bulk insert from specific sheet of workbook I have tried
select * into test1 from (
select * from OpenRowset(
'Microsoft.Jet.OLEDB.4.0',[code]....
But it didnot works when number of columns exceed but works well on sql when columns are less.
I have a VB.NET application that creates a dataview from sql table and exports it as an excel file. Now, the data is inserted value by value. Instead, I want to insert the data from the dataview as a bulk insert on to the excel file. The data insert should happen from the third row, as I need to use the first two rows for column insert and data formating (which is done later in the program using excel macro.).Heres the code I wish to upgrade :
Dim strConn As String = "Data Source = LV-SQL2; Initial Catalog = TC_MASTER; user id = SQL2JOB; password = ******** "
Dim strSql1 As String = "Select Customer_id_1, file_name from customer_list_DA order by customer_id_1"
Dim da1 As New SqlDataAdapter(strSql1, strConn)
[code]....
I am writing a report to an excel template and am trying to insert a page break into the report. Part of my code is included:
Imports msWE = Microsoft.Office.Interop
Dim Rnge As msWE.Excel.Range = excelApp.Range("A20:M20")
Dim excelApp As New msWE.Excel.ApplicationClass
excelApp.Worksheets.HPageBreaks.Add(Rnge)
Now the pagebreak code executes but it does nothing. Its almost as if it is being ignored. Also I have heard that using Microsoft.Office.Interop is not a good idea as it is slow and unstable.
How can I set the column width and leave the top 10 rows empty in order to insert an image into my Excel report?
Here is my code:
If ComDset.Tables(0).Rows.Count > 0 Then
Try
With Excel
[code]....