2017-10-09 8 views
0

私は既存のExcelファイルがあります。それはスタイル、ex:table、color、.....(下の画像のように)ですので、datagridviewのデータをexcel(行5とテーブル内のデータexsit)に挿入する必要があります。テーブルには存在せず、最後の行は削除されました。存在するExcelファイルにデータを挿入するC#

using Excel = Microsoft.Office.Interop.Excel; 

Excel.Application xlApp; 
Excel.Workbook xlWorkBook; 
Excel.Worksheet xlWorkSheet; 
string fileName = "YOUR_EXCEL_FILE"; 

xlApp = new Excel.Application(); 
xlWorkBook = xlApp.Workbooks.Open(fileName); 
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

for (int i = 0; i < dataGridView3.Rows.Count - 1; i++) 
{ 
    for (int j = 0; j < dataGridView3.Columns.Count; j++) 
    { 
     xlWorkSheet.Cells[i + 4, j + 1] = dataGridView3.Rows[i].Cells[j].Value.ToString(); 
    } 
} 

xlWorkBook.SaveAs(YOUR_PATH+ ".xlsx"); 
object misValue = System.Reflection.Missing.Value; 
xlWorkBook.Close(true, misValue, misValue); 
xlApp.Quit(); 
xlWorkSheet = null; 
xlWorkBook = null; 
xlApp = null; 


Process.Start("" + YOUR_PATH + ".xlsx"); 
+0

保存ファイルxlWorkBook.SaveAs(ファイルパス+ "の.xlsx");:

enter image description here

imsome1

+0

@ imsome1:はい、私はその行をコメントしました。 – gggg

+0

デバッグしてdataGridView3の値を確認しましたか? – imsome1

答えて

0

Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application(); 
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(filePath); 
Microsoft.Office.Interop.Excel._Worksheet worksheet = null; 
app.Visible = true; 
worksheet = workbook.ActiveSheet; 
for (int i = 0; i < dataGridView3.Rows.Count - 1; i++) 
{ 
    for (int j = 0; j < dataGridView3.Columns.Count; j++) 
    { 
     worksheet.Cells[i + 4, j + 1] = dataGridView3.Rows[i].Cells[j].Value.ToString(); 
    } 
} 
app.Quit(); 
次のコードを試してみてくださいbefore app.Quit();
+0

それは動作しますが、私はフォーマットファイルに問題があります。 exsitテーブルに新しい行を挿入することはできません(このテーブルはフォーマットファイルです)。 – gggg

関連する問題