比如有个datagridview,有数据如下
编码 名称
01 aa
02 bb
导出到excel后,编码列为数字型,我想让他导出后为字符型
导出代码如下:using Excel = Microsoft.Office.Interop.Excel;public static int DataGridViewToExcel(System.Windows.Forms.DataGridView GridView, string strExcelFileName, out string strError)
{
strError = "";
int nRet = 0; Excel.Application xlApp = new Excel.Application();
Excel.Workbooks workbooks = xlApp.Workbooks;
Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1 try
{
//~~
// 写字段名
int z = 0;
for (int i = 0; i < GridView.Columns.Count; i++)
{
if (GridView.Columns[i].Visible == true)
{
worksheet.Cells[1, z + 1] = GridView.Columns[i].HeaderText.ToString();
z++;
}
} // 写记录
for (int i = 0; i < GridView.Rows.Count; i++)
{
z = 0;
for (int j = 0; j < GridView.Columns.Count; j++)
{
if (GridView.Columns[j].Visible == true)
{
worksheet.Cells[i + 2, z + 1] = GridView.Rows[i].Cells[j].Value.ToString();
z++;
}
}
} worksheet.Columns.EntireColumn.AutoFit();//自动适应每列的宽度 add by sunny.li
Excel.Range rg = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, GridView.Columns.Count]);
rg.Font.Bold = true;
workbook.Saved = true;
workbook.SaveCopyAs(strExcelFileName); // 关掉内存中的进程
xlApp.Quit();
nRet = 0;
}
catch (Exception ex)
{
strError = ex.ToString();
nRet = -1;
} return nRet;
}
编码 名称
01 aa
02 bb
导出到excel后,编码列为数字型,我想让他导出后为字符型
导出代码如下:using Excel = Microsoft.Office.Interop.Excel;public static int DataGridViewToExcel(System.Windows.Forms.DataGridView GridView, string strExcelFileName, out string strError)
{
strError = "";
int nRet = 0; Excel.Application xlApp = new Excel.Application();
Excel.Workbooks workbooks = xlApp.Workbooks;
Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1 try
{
//~~
// 写字段名
int z = 0;
for (int i = 0; i < GridView.Columns.Count; i++)
{
if (GridView.Columns[i].Visible == true)
{
worksheet.Cells[1, z + 1] = GridView.Columns[i].HeaderText.ToString();
z++;
}
} // 写记录
for (int i = 0; i < GridView.Rows.Count; i++)
{
z = 0;
for (int j = 0; j < GridView.Columns.Count; j++)
{
if (GridView.Columns[j].Visible == true)
{
worksheet.Cells[i + 2, z + 1] = GridView.Rows[i].Cells[j].Value.ToString();
z++;
}
}
} worksheet.Columns.EntireColumn.AutoFit();//自动适应每列的宽度 add by sunny.li
Excel.Range rg = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, GridView.Columns.Count]);
rg.Font.Bold = true;
workbook.Saved = true;
workbook.SaveCopyAs(strExcelFileName); // 关掉内存中的进程
xlApp.Quit();
nRet = 0;
}
catch (Exception ex)
{
strError = ex.ToString();
nRet = -1;
} return nRet;
}
Microsoft.Office.Interop.Excel.Style style = ws.UsedRange.Style as Microsoft.Office.Interop.Excel.Style;
style.Name = "Text";
就可以了,录制宏看到的