社区
C#
帖子详情
winform导出excel问题
jiafenhaonan
2010-09-10 02:47:10
我要把DataGridView中的数据导出为excel,现在已经导出成功了,但是导出的数据0都被去除了
例:数据为00001,到处以后为1
该怎么解决
...全文
188
13
打赏
收藏
winform导出excel问题
我要把DataGridView中的数据导出为excel,现在已经导出成功了,但是导出的数据0都被去除了 例:数据为00001,到处以后为1 该怎么解决
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Ryan20082009
2010-09-10
打赏
举报
回复
看下我的我是根据我的Excel写的,你改改
public TextReader ReaderExcel1(string filePath)
{
using (TextWriter tw = new StringWriter())
{
//Open Excel.
string start = "A";
string end = "X";
Application app = new Application();
Workbooks wbs = app.Workbooks;
_Workbook wb = wbs.Add(filePath);
Sheets shs = wb.Sheets;
_Worksheet sh = (_Worksheet)shs.get_Item(1);
int i = -1;
string[] year = new string[6];
bool bo = false;
while (true)
{
i++;
if (bo)
{
break;
}
for (int n = 5; n < 20; n++)
{
Range r = sh.get_Range(start + (6 + i * 18), end + (6 + i * 18));
Object[,] saRet1 = (Object[,])r.get_Value(System.Reflection.Missing.Value);
if (saRet1[1, 2] == null || !saRet1[1, 2].Equals("Rate"))
{
bo = true;
break;
}
Range rr = sh.get_Range(start + (n + i * 18), end + (n + i * 18));
Object[,] saRet = (Object[,])rr.get_Value(System.Reflection.Missing.Value);
for (int k = 0; k < 6; k++)
{
if (saRet[1, 2 + k * 4] != null)
{
if (n == 5)
{
year[k] = saRet[1, 2 + k * 4].ToString();
}
if (n >= 8 && n <= 20)
{
string strTime = saRet[1, 1].ToString();
string res = strTime.Substring(0, 3);
string returnMoth = DateTime.ParseExact(res, "MMM", null).Month.ToString();
string[] strA = new string[7];
strA[0] = returnMoth + "/" + year[k];
strA[1] = ",";
strA[2] = saRet[1, 2 + k * 4].ToString();
strA[3] = ",";
strA[4] = saRet[1, 3 + k * 4].ToString();
strA[5] = ",";
strA[6] = Str(saRet, 4 + k * 4);
WriteingCsv(tw, strA);
}
}
}
}
}
return new StringReader(tw.ToString());
}
}
honkerhero
2010-09-10
打赏
举报
回复
都是很强的回复啊,加‘一般是不得已而为之,想办法把那一列设置成文本啊,在EXCEL操作一遍,录个宏分析一下,转成C#代码就行了
jiafenhaonan
2010-09-10
打赏
举报
回复
加上了’ 0是显示出来了 但是数据格中会有一个绿色的标签 怎么去掉
jiafenhaonan
2010-09-10
打赏
举报
回复
#region 导出excel
private void ExportExcel(string fileName, DataGridView myDGV)
{
string saveFileName = "";
//bool fileSaved = false;
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.Filter = "Excel文件|*.xls";
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
if (saveFileName.IndexOf(":") < 0) return; //被点了取消
Excel.Application xlApp = new Excel.Application();
if (xlApp == null)
{
MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
return;
}
Excel.Workbooks workbooks = xlApp.Workbooks;
Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
//写入标题
for (int i = 0; i < myDGV.ColumnCount; i++)
{
worksheet.Cells[1, i + 1] = myDGV.Columns[i].HeaderText;
}
//写入数值
for (int r = 0; r < myDGV.Rows.Count; r++)
{
for (int i = 0; i < myDGV.ColumnCount; i++)
{
worksheet.Cells[r + 2, i + 1] = myDGV.Rows[r].Cells[i].Value.ToString();
}
System.Windows.Forms.Application.DoEvents();
}
worksheet.Columns.EntireColumn.AutoFit();//列宽自适应
//if (Microsoft.Office.Interop.cmbxType.Text != "Notification")
//{
// Excel.Range rg = worksheet.get_Range(worksheet.Cells[2, 2], worksheet.Cells[ds.Tables[0].Rows.Count + 1, 2]);
// rg.NumberFormat = "00000000";
//}
if (saveFileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName);
//fileSaved = true;
}
catch (Exception ex)
{
//fileSaved = false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
}
}
//else
//{
// fileSaved = false;
//}
xlApp.Quit();
GC.Collect();//强行销毁
// if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打开EXCEL
MessageBox.Show("资料保存成功", "提示", MessageBoxButtons.OK);
}
#endregion
这是我饿得到处方法 应该加在哪里?
Neil198
2010-09-10
打赏
举报
回复
你导出excel的时候不得一条一条的添加数据???
孟子E章
2010-09-10
打赏
举报
回复
设置样式
<Cell ss:StyleID='border'><Data ss:Type='String'>
jiafenhaonan
2010-09-10
打赏
举报
回复
怎么加啊 总不能在DataGridView中吧字段加上’吧 有没有源码啊
Neil198
2010-09-10
打赏
举报
回复
加
'
就是文本了
Neil198
2010-09-10
打赏
举报
回复
最简单的方法。在每个00001这样的数据前面加上字符
'
jiafenhaonan
2010-09-10
打赏
举报
回复
我现在想知道的是怎么转换成文本
IsUaTyAdd
2010-09-10
打赏
举报
回复
格式的问题,用decimal 转一下。
jiafenhaonan
2010-09-10
打赏
举报
回复
晕 我说大哥 你跟没说有什么区别啊
a174740341
2010-09-10
打赏
举报
回复
果断的把Excel数据格式变为文本
[VB.NET]
winform
下DataGrid
导出
excel
问题
本文讨论了
WinForm
下 DataGrid
导出
Excel
的实现方法及遇到的
问题
,包括 StackOverflowException 异常的排查与解决,并提供了多种
导出
方案。
C#
winform
实现
excel
导入
导出
及实现过程中的
问题
解决
本文介绍如何使用
WinForm
实现
Excel
文件的导入和
导出
功能,包括读取多个sheet、处理不同版本的
Excel
文件,以及将数据存储到数据库和从数据库查询数据后
导出
到
Excel
。
Winform
开发遇到的
问题
之DataGridView
导出
Excel
本文介绍了一种使用C#进行
Excel
导出
的方法,包括如何将DataGridView中的数据
导出
到
Excel
文件,以及如何处理文件保存和异常情况。通过代码示例展示了完整的
导出
过程,包括创建
Excel
对象、写入标题和数据、调整列宽和保存文件。
C#
winform
Excel
导入
导出
(方法摘录自别人,这里讲如何使用以及一些注意
问题
)
本文详细介绍使用Microsoft.Office.Interop.
Excel
、NPOI及Aspose控件进行
Excel
数据导入
导出
的方法,包括解决版本兼容性
问题
、提高数据处理效率,以及通过代码实现数据从
Excel
到数据库的迁移。
关于DevExpress
Winform
GridControl GridView 主从表(Master-Detail)
导出
Excel
问题
本文介绍DevExpress中GridView如何配置以支持
导出
Excel
时保留样式及主从表明细数据,并提供了一个简单示例。
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章