추가하는 C # 엑셀 파일

찾기 위해 인터넷을 한 번 생성에서 나는 프로그램 법령을 쓴이 이틀, 시간 저장 1 분 엑셀 파일에 데이터를 저장하려면, 자원, 많은 실험 후 원래의 기준에 추가 모드는 다음과 없으므로 :( ) 마크를 만들

기능하는 data.xlsx을 만들 수있는 템플릿으로 새 파일, 분산 프로그램 같은 디렉토리를 실현, 프로그램이 새로운 날짜를 기반으로 파일을 생성합니다, 같은 날은 데이터가 추가 모드에 따라 작성되었습니다.

// *保存遥测数据
공개 무효 saveycdata ()
{
문자열 [] = 새로운 캐릭터 데이터 [32];
위한 (I ++; I <32 INT I = 0)
시도
{
데이터 [I] = (dataGridView1.Rows [I] .Cells [4] .Value.ToString ());
}
캐치
{
데이터 [I] = "0";
}
savedatatoexcel (데이터);
}
//数据保存엑셀到
공개 무효 savedatatoexcel (문자열 [] 데이터)
{

XlApp = Microsoft.Office.Interop.Excel.Application 새로운 새로운이 Excel.Application ();
IF (xlApp == NULL)
{
MessageBox.Show는 ( "엑셀 확실 환경이 정상인지 확인, 개체를 엑셀 만들 수 없습니다");
반환;

}
xlApp.Visible = 거짓;
xlApp.UserControl 사실 =;
xlApp.DisplayAlerts = 거짓;
Excel._Workbook는 통합 문서;
날짜 시간 DT = DateTime.Now;
시간 = INT dt.Hour;
INT 분 = dt.Minute;
INT의 시간 = HH * + 60 분 / 1;
문자열 날짜 = dt.Year.ToString ( "D4") + dt.Month.ToString ( "D2") + dt.Day.ToString ( "D2");
Excel.Workbooks 통합 문서 = xlApp.Workbooks;
(File.Exists (해당 AppDomain.CurrentDomain.BaseDirectory + @ "데이터"+ 일자 + @ ". XLSX"))의 경우
통합 workbooks.Add = (해당 AppDomain.CurrentDomain.BaseDirectory + @ "데이터"+ 일자 + @ ". XLSX" ); //加载模板
다른
{
File.Copy (해당 AppDomain.CurrentDomain.BaseDirectory + @ "data.xlsx"해당 AppDomain.CurrentDomain.BaseDirectory + @ "데이터"+ 날짜 +를 @ 사실 "XLSX.");
통합 workbooks.Add = (해당 AppDomain.CurrentDomain.BaseDirectory + @ "데이터"+ 일자 + @ "XLSX."); //加载模板
}
Excel.Sheets 시트 = workbook.Sheets;
Excel._Worksheet 워크 = (Excel._Worksheet) sheets.get_Item (1); //第一个工作薄.
경우 (워크 시트 == NULL)
반환; //工作薄中没有工作表.

//Microsoft.Office.Interop.Excel.Workbook 통합 = workbooks.Add (Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
//Microsoft.Office.Interop.Excel.Workbook 통합 문서 = workbooks.Open (해당 AppDomain.CurrentDomain.BaseDirectory + @ "data.xlsx", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//Microsoft.Office.Interop.Excel.Worksheet 워크 = (Microsoft.Office.Interop.Excel.Worksheet) workbook.Worksheets [1]; //取得시트 1
worksheet.Name = 날짜;
문자열 strcaption = "";
//写入标题
worksheet.Cells [1,1] = "时间";
대해 INT (I = 0; I는 <64 / dataGridView1.RowCount * * /; I ++)
{
worksheet.Cells [1 + I 2.] = dataGridView1.Rows [I]는 .Cells [1.] .Value;
}
// 기록 값

worksheet.Cells [HH + 1, 1] = hour.ToString () + "时"+ min.ToString () + "分";
대 (INT에서 R = 0, R <64 / dataGridView1.Rows.Count * * /; R ++)
{
worksheet.Cells [HH + 1, R + 2] = dataGridView1.Rows [R] .Cells [4] .Value;

System.Windows.Forms.Application.DoEvents ();
//System.Console.WriteLine("{0}\r\n "r.ToString ());
// strcaption = "导出..."+ r.ToString () + + dataGridView1.Rows.Count.ToString () "의";
//this.Text = strcaption;
}
worksheet.Columns.EntireColumn.AutoFit (); //列宽自适应

시도
{
workbook.Saved 사실 =;
//workbook.SaveCopyAs(AppDomain.CurrentDomain.BaseDirectory + @ "data.xlsx");
workbook.SaveAs (해당 AppDomain.CurrentDomain.BaseDirectory + @ "데이터"+ 일자 + @ "XLSX.");

}
캐치 (예외 예)
{
( "오류가 수출 파일, 파일을 열 수 있지만 \ N- 발생!"+ Ex.Message) //MessageBox.Show;
}

workbook.Close (Missing.Value, Missing.Value, Missing.Value);
xlApp.DisplayAlerts = TRUE;
xlApp.Quit ();
널을 xlApp =;
// INT의 ID = 0;

GC.Collect를은 (); // 강제로 파괴

//System.Diagnostics.Process.Start(savefilename);

}

 

 

추천

출처www.cnblogs.com/mainmaster/p/12031033.html