Я создам файл Excel с именем, датой и кодом для «моего» приватного конкурса.Строка формата Excel
Он отлично работает, но выглядит не так хорошо. Как я могу отформатировать ячейки для чтения даты и текста вставки? Имя и Контент не может быть прочитан на всех
Excel.Application _xlApp = new Excel.Application();
Excel.Workbook _xlWorkBook;
Excel.Worksheet _xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
internal void CreateExcelFile(string writePath)
{
this.CreateHeader();
this.AddContent();
this.SaveFile(writePath);
}
private void CreateHeader()
{
_xlWorkBook = _xlApp.Workbooks.Add(misValue);
_xlWorkSheet = (Excel.Worksheet)_xlWorkBook.Worksheets.get_Item(1);
_xlWorkSheet.Cells[1, ExcelObject.SAMNAME] = "SAM_NAME";
_xlWorkSheet.Cells[1, ExcelObject.DATE] = "Date";
_xlWorkSheet.Cells[1, ExcelObject.CODE] = "Code";
FormatCells(_xlWorkSheet.Cells.Borders);
}
private void AddContent()
{
int i = 1;
++i;
_xlWorkSheet.Cells[i, ExcelObject.Date] = DateTime.Now.ToString("yyyyMMdd_HHmmss");
_xlWorkSheet.Cells[i, ExcelObject.SAMNAME] = "Julek";
}
private void FormatCells(Excel.Borders _borders)
{
_borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous;
_borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlContinuous;
_borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlContinuous;
_borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
_borders.Color = ConsoleColor.Black;
}
private void SaveFile(string writePath)
{
string fileName = string.Format("{0}_{1}.xls","SampleFile", DateTime.Now.ToString("yyyyMMdd_HHmmss"));
_xlWorkBook.SaveAs(Path.Combine(writePath, fileName), Excel.XlFileFormat.xlWorkbookNormal, misValue,
misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
_xlWorkBook.Close(true, misValue, misValue);
_xlApp.Quit();
ReleaseObject(_xlWorkSheet);
ReleaseObject(_xlWorkBook);
ReleaseObject(_xlApp);
}
private void ReleaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception) { throw; }
finally
{
GC.Collect();
}
}
Не могли бы вы указать, что вы хотите достичь? Вы хотите отформатировать ваши данные, чтобы Excel мог распознать его как дату? –
Я хочу создать файл Excel, где все бегуны автоматически вставлены для помощника в конкурсе. Поэтому было бы замечательно, если бы они могли читать все имена, заголовки и т. Д. Без форматирования файла Excel вручную. –
Если я могу дать вам один совет, используйте EPPlus (http://epplus.codeplex.com/) для создания/редактирования файлов Excel. Он имеет очень интуитивные методы для всего, что касается стиля, добавления DataTable, ширины столбцов, типа столбцов, типа celltype и т. Д. И может быть легко установлено через Nuget. У него есть метод для 'AutoColumnWidth' и т. Д., Который просто потрясающий для большинства простых файлов excel :) –