Так что прежде чем он работал, когда у него есть worbook.saveAs (); но мне нужно было открыть существующий файл, а затем сохранить его. не переписывай.
Я пытался использовать методы, показанные здесь в разных вопросах, но все они заменяют текущий файл и создают новый.
SqlConnection cnn;
string connectionString = null;
string sql = null;
string data = null;
int i = 0;
int j = 0;
string filename = @"D:\ExcelFiles\DatabaseComp.xls";
Microsoft.Office.Interop.Excel.Application xlApp;
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Microsoft.Office.Interop.Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(filename, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Diether\Desktop\OJT KIOSK\DB_Kiosk.mdf;Integrated Security=True;User Instance=True";
cnn = new SqlConnection(connectionString);
cnn.Open();
sql = "SELECT * FROM TBL_Company";
SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
DataSet ds = new DataSet();
dscmd.Fill(ds);
foreach (dynamic worksheet in xlWorkBook.Worksheets)
{
xlWorkSheet.Cells.ClearContents();
}
foreach (System.Data.DataTable dt in ds.Tables)
{
for (int i1 = 0; i1 < dt.Columns.Count; i1++)
{
xlWorkSheet.Cells[1, i1 + 1] = dt.Columns[i1].ColumnName;
}
}
for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
int s = i + 1;
for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
{
data = ds.Tables[0].Rows[i].ItemArray[j].ToString();
xlWorkSheet.Cells[s + 1, j + 1] = data;
}
}
xlApp.DisplayAlerts = false;
xlWorkBook.Save();
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
xlApp.DisplayAlerts = false;
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);