2
여러 클라이언트가 연결되는 서버를 만들고 서버에 몇 가지 16 진수 데이터를 보냅니다. 데이터는 서버에 의해 처리되고이 데이터를 엑셀 시트에 저장하려고합니다. 다음 코드를 사용하고 있지만이 때마다 Excel 파일이 열리고 데이터가 쓰여지고 닫힙니다. 또한 Excel 파일도 이미 존재해야합니다.C# 자동으로 엑셀 시트 만들기 및 데이터 저장
public class CreateExcelDoc
{
private static Excel.Workbook workbook = null;
private static Excel.Worksheet worksheet = null;
private static Excel.Range workSheet_range = null;
private static Excel.Application app = new Excel.Application();
private static Excel.Workbooks workbooks = app.Workbooks;
public static void createDoc()
{
object misValue = System.Reflection.Missing.Value;
try
{
workbook = workbooks.Open("C:\\Documents and Settings\\pratyush\\Desktop\\test.xlsx", misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
app.Visible = true;
worksheet = (Excel.Worksheet)workbook.Sheets[1];
}
catch (Exception e)
{
Console.Write("Error");
}
finally
{
}
}
public static void createHeaders(int row, int col, string htext, string cell1, string cell2, int mergeColumns, string b, bool font, int size, string fcolor)
{
worksheet.Cells[row, col] = htext;
workSheet_range = worksheet.get_Range(cell1, cell2);
workSheet_range.Merge(mergeColumns);
switch (b)
{
case "YELLOW":
workSheet_range.Interior.Color = System.Drawing.Color.Yellow.ToArgb();
break;
case "GRAY":
workSheet_range.Interior.Color = System.Drawing.Color.Gray.ToArgb();
break;
case "GAINSBORO":
workSheet_range.Interior.Color = System.Drawing.Color.Gainsboro.ToArgb();
break;
case "Turquoise":
workSheet_range.Interior.Color = System.Drawing.Color.Turquoise.ToArgb();
break;
case "PeachPuff":
workSheet_range.Interior.Color = System.Drawing.Color.PeachPuff.ToArgb();
break;
default:
// workSheet_range.Interior.Color = System.Drawing.Color..ToArgb();
break;
}
workSheet_range.Borders.Color = System.Drawing.Color.Black.ToArgb();
workSheet_range.Font.Bold = font;
workSheet_range.ColumnWidth = size;
if (fcolor.Equals(""))
{
workSheet_range.Font.Color = System.Drawing.Color.White.ToArgb();
}
else
{
workSheet_range.Font.Color = System.Drawing.Color.Black.ToArgb();
}
}
public static void addData(int row, int col, string data, string cell1, string cell2, string format)
{
worksheet.Cells[row, col] = data;
workSheet_range = worksheet.get_Range(cell1, cell2);
workSheet_range.Borders.Color = System.Drawing.Color.Black.ToArgb();
workSheet_range.NumberFormat = format;
}
public static void adddata()
{
createDoc();
//creates the main header
createHeaders(5, 2, "Total of Products", "B5", "D5", 2, "YELLOW", true, 10, "n");
//creates subheaders
createHeaders(6, 2, "Sold Product", "B6", "B6", 0, "GRAY", true, 10, "");
//add Data to to cells
addData(7, 2, "114287", "B7", "B7", "#,##0");
workbook.Close(true, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
app.Quit();
}
public static void Main()
{
adddata();
}
}
}
는 내가 원하는 내 서버 이름이 자동으로 클라이언트의 IP 주소입니다 새 Excel 파일을 생성하고이 서버에 의해 처리 된 후 데이터를 추가하고 자동으로 저장해야한다는 것입니다. 현재이 코드는 매번 파일을 열고 엑셀 파일에 데이터를 저장 한 다음 닫을 때부터 어떻게하면됩니까?
감사합니다 Irfan 솔루션 – prattom
당신은 환영합니다 :) – Irfan