100分,.net 中如何实现遍历excel中所有sheet,把全角转成半角?

问题描述

100分,.net中如何实现遍历excel中所有sheet,把全角转成半角?

解决方案

解决方案二:
操作excel的一些函数,你也许用的到ImportsSystemImportsSystem.DataImportsSystem.ConfigurationImportsSystem.WebNamespaceExcelEditPublicClassExcelEditPublicmFilenameAsStringPublicappAsExcel.ApplicationPublicwbsAsExcel.WorkbooksPublicwbAsExcel.WorkbookPublicwssAsExcel.WorksheetsPublicwsAsExcel.WorksheetPublicSubNew()EndSubPublicSubCreate()'创建一个Excel对象app=NewExcel.Applicationwbs=app.Workbookswb=wbs.Add(True)EndSubPublicSubOpen(ByValFileNameAsString)'打开一个Excel文件app=NewExcel.Applicationwbs=app.Workbookswb=wbs.Add(FileName)'wb=wbs.Open(FileName,0,true,5,"","",true,Excel.XlPlatform.xlWindows,"t",false,false,0,true,Type.Missing,Type.Missing);'wb=wbs.Open(FileName,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Excel.XlPlatform.xlWindows,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);mFilename=FileNameEndSubPublicFunctionGetSheet(ByValSheetNameAsString)AsExcel.Worksheet'获取一个工作表DimsAsExcel.Worksheet=DirectCast(wb.Worksheets(SheetName),Excel.Worksheet)ReturnsEndFunctionPublicFunctionAddSheet(ByValSheetNameAsString)AsExcel.Worksheet'添加一个工作表DimsAsExcel.Worksheet=DirectCast(wb.Worksheets.Add(Type.Missing,Type.Missing,Type.Missing,Type.Missing),Excel.Worksheet)s.Name=SheetNameReturnsEndFunctionPublicSubDelSheet(ByValSheetNameAsString)'删除一个工作表DirectCast(wb.Worksheets(SheetName),Excel.Worksheet).Delete()EndSubPublicFunctionReNameSheet(ByValOldSheetNameAsString,ByValNewSheetNameAsString)AsExcel.Worksheet'重命名一个工作表一DimsAsExcel.Worksheet=DirectCast(wb.Worksheets(OldSheetName),Excel.Worksheet)s.Name=NewSheetNameReturnsEndFunctionPublicFunctionReNameSheet(ByValSheetAsExcel.Worksheet,ByValNewSheetNameAsString)AsExcel.Worksheet'重命名一个工作表二Sheet.Name=NewSheetNameReturnSheetEndFunctionPublicSubSetCellValue(ByValwsAsExcel.Worksheet,ByValxAsInteger,ByValyAsInteger,ByValvalueAsObject)'ws:要设值的工作表X行Y列value值ws.Cells(x,y)=valueEndSubPublicSubSetCellValue(ByValwsAsString,ByValxAsInteger,ByValyAsInteger,ByValvalueAsObject)'ws:要设值的工作表的名称X行Y列value值GetSheet(ws).Cells(x,y)=valueEndSubPublicSubSetCellProperty(ByValwsAsExcel.Worksheet,ByValStartxAsInteger,ByValStartyAsInteger,ByValEndxAsInteger,ByValEndyAsInteger,ByValsizeAsInteger,_ByValnameAsString,ByValcolorAsExcel.Constants,ByValHorizontalAlignmentAsExcel.Constants)'设置一个单元格的属性字体,大小,颜色,对齐方式name="宋体"size=12color=Excel.Constants.xlAutomaticHorizontalAlignment=Excel.Constants.xlRightws.get_Range(ws.Cells(Startx,Starty),ws.Cells(Endx,Endy)).Font.Name=namews.get_Range(ws.Cells(Startx,Starty),ws.Cells(Endx,Endy)).Font.Size=sizews.get_Range(ws.Cells(Startx,Starty),ws.Cells(Endx,Endy)).Font.Color=colorws.get_Range(ws.Cells(Startx,Starty),ws.Cells(Endx,Endy)).HorizontalAlignment=HorizontalAlignmentEndSubPublicSubSetCellProperty(ByValwsnAsString,ByValStartxAsInteger,ByValStartyAsInteger,ByValEndxAsInteger,ByValEndyAsInteger,ByValsizeAsInteger,_ByValnameAsString,ByValcolorAsExcel.Constants,ByValHorizontalAlignmentAsExcel.Constants)'name="宋体";'size=12;'color=Excel.Constants.xlAutomatic;'HorizontalAlignment=Excel.Constants.xlRight;DimwsAsExcel.Worksheet=GetSheet(wsn)ws.get_Range(ws.Cells(Startx,Starty),ws.Cells(Endx,Endy)).Font.Name=namews.get_Range(ws.Cells(Startx,Starty),ws.Cells(Endx,Endy)).Font.Size=sizews.get_Range(ws.Cells(Startx,Starty),ws.Cells(Endx,Endy)).Font.Color=colorws.get_Range(ws.Cells(Startx,Starty),ws.Cells(Endx,Endy)).HorizontalAlignment=HorizontalAlignmentEndSubPublicSubUniteCells(ByValwsAsExcel.Worksheet,ByValx1AsInteger,ByValy1AsInteger,ByValx2AsInteger,ByValy2AsInteger)'合并单元格ws.get_Range(ws.Cells(x1,y1),ws.Cells(x2,y2)).Merge(Type.Missing)EndSubPublicSubUniteCells(ByValwsAsString,ByValx1AsInteger,ByValy1AsInteger,ByValx2AsInteger,ByValy2AsInteger)'合并单元格GetSheet(ws).get_Range(GetSheet(ws).Cells(x1,y1),GetSheet(ws).Cells(x2,y2)).Merge(Type.Missing)EndSubPublicSubInsertTable(ByValdtAsSystem.Data.DataTable,ByValwsAsString,ByValstartXAsInteger,ByValstartYAsInteger)'将内存中数据表格插入到Excel指定工作表的指定位置为在使用模板时控制格式时使用一ForiAsInteger=0Todt.Rows.Count-1ForjAsInteger=0Todt.Columns.Count-1GetSheet(ws).Cells(startX+i,j+startY)=dt.Rows(i)(j).ToString()NextNextEndSubPublicSubInsertTable(ByValdtAsSystem.Data.DataTable,ByValwsAsExcel.Worksheet,ByValstartXAsInteger,ByValstartYAsInteger)'将内存中数据表格插入到Excel指定工作表的指定位置二ForiAsInteger=0Todt.Rows.Count-1ForjAsInteger=0Todt.Columns.Count-1ws.Cells(startX+i,j+startY)=dt.Rows(i)(j)NextNextEndSubPublicSubAddTable(ByValdtAsSystem.Data.DataTable,ByValwsAsString,ByValstartXAsInteger,ByValstartYAsInteger)'将内存中数据表格添加到Excel指定工作表的指定位置一ForiAsInteger=0Todt.Rows.Count-1ForjAsInteger=0Todt.Columns.Count-1GetSheet(ws).Cells(i+startX,j+startY)=dt.Rows(i)(j)NextNextEndSub

解决方案三:
接楼上PublicSubAddTable(ByValdtAsSystem.Data.DataTable,ByValwsAsExcel.Worksheet,ByValstartXAsInteger,ByValstartYAsInteger)'将内存中数据表格添加到Excel指定工作表的指定位置二ForiAsInteger=0Todt.Rows.Count-1ForjAsInteger=0Todt.Columns.Count-1ws.Cells(i+startX,j+startY)=dt.Rows(i)(j)NextNextEndSubPublicSubInsertPictures(ByValFilenameAsString,ByValwsAsString,ByValleftAsInteger,ByValtopAsInteger,ByValHeightAsInteger,ByValWidthAsInteger)'//插入图片操作三GetSheet(ws).Shapes.AddPicture(Filename,Office.MsoTriState.msoFalse,Office.MsoTriState.msoTrue,10,10,150,150)GetSheet(ws).Shapes.get_Range(Type.Missing).IncrementLeft(left)GetSheet(ws).Shapes.get_Range(Type.Missing).IncrementTop(top)GetSheet(ws).Shapes.get_Range(Type.Missing).Height=HeightGetSheet(ws).Shapes.get_Range(Type.Missing).Width=WidthEndSubPublicSubInsertline(ByValwsAsString,ByValstartxAsInteger,ByValstartyAsInteger,ByValendxAsInteger,ByValendyAsInteger)'//插入图片操作三GetSheet(ws).Shapes.AddLine(startx,starty,endx,endy).Select()GetSheet(ws).Selection.ShapeRange.Line.EndArrowheadStyle=Office.MsoArrowheadStyle.msoArrowheadDiamondGetSheet(ws).Selection.ShapeRange.Line.EndArrowheadLength=Office.MsoArrowheadLength.msoArrowheadLengthMediumGetSheet(ws).Selection.ShapeRange.Line.EndArrowheadWidth=Office.MsoArrowheadWidth.msoArrowheadWidthMediumGetSheet(ws).Selection.ShapeRange.Flip(Office.MsoFlipCmd.msoFlipHorizontal)app.CommandBars("AutoShapes").Visible=FalseDimaAsInteger=GetSheet(ws).get_Range(GetSheet(ws).Cells(startx,starty),GetSheet(ws).Cells(endx,endy)).widthEndSubPublicSubInsertActiveChart(ByValChartTypeAsExcel.XlChartType,ByValwsAsString,ByValDataSourcesX1AsInteger,ByValDataSourcesY1AsInteger,ByValDataSourcesX2AsInteger,ByValDataSourcesY2AsInteger,_ByValChartDataTypeAsExcel.XlRowCol)'插入图表操作ChartDataType=Excel.XlRowCol.xlColumnswb.Charts.Add(Type.Missing,Type.Missing,Type.Missing,Type.Missing)wb.ActiveChart.ChartType=ChartTypewb.ActiveChart.SetSourceData(GetSheet(ws).get_Range(GetSheet(ws).Cells(DataSourcesX1,DataSourcesY1),GetSheet(ws).Cells(DataSourcesX2,DataSourcesY2)),ChartDataType)wb.ActiveChart.Location(Excel.XlChartLocation.xlLocationAsObject,ws)EndSubPublicFunctionSave()AsBoolean'保存文档IfmFilename=""ThenReturnFalseElseTrywb.Save()ReturnTrueCatchexAsExceptionReturnFalseEndTryEndIfEndFunction'PublicFunctionSaveAs(ByValFileNameAsObject)AsBoolean''文档另存为'Try'wb.SaveAs(FileName,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,_'Excel.XlSaveAsAccessMode.xlExclusive,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing)'ReturnTrue'CatchexAsException'ReturnFalse'EndTry'EndFunctionPublicSubClose()'关闭一个Excel对象,销毁对象'wb.Save();wb.Close(Type.Missing,Type.Missing,Type.Missing)wbs.Close()app.Quit()wb=Nothingwbs=Nothingapp=NothingGC.Collect()EndSubEndClassEndNamespace

解决方案四:
参考http://topic.csdn.net/u/20081115/19/5860e8cb-78e1-4b54-b0f3-2f9da918bef6.htmlhttp://blog.csdn.net/brightgems/archive/2008/09/23/2968574.aspx全角转成半角http://www.cnblogs.com/onekey/archive/2007/07/11/814289.htmlhttp://www.cnblogs.com/jguangliang/articles/1328765.html

时间: 2024-08-12 14:41:21

100分,.net 中如何实现遍历excel中所有sheet,把全角转成半角?的相关文章

以前收集的一些资料---如何在ASP中通过ODBC调用Excel中的数据

excel|odbc|数据                如何在ASP中通过ODBC调用Excel中的数据    在ASP中通过ODBC调用Excel中的数据方式和普通的通过ODBC调用数据库的方式有一些不同的地方.下面将介绍如何通过ODBC在ASP中使用Excel的数据.    在使用的过程中,要注意的是你需要使用的ODBC驱动为:Microsoft ODBC Driver for Excel. 下面给出一个例子来具体说明如何调用的过程:1.在Excel的电子表格中新建一个叫Range的表单a

如何在ASP中通过ODBC调用Excel中的数据

excel|odbc|数据 http://www.chinaasp.com/ 在ASP中通过ODBC调用Excel中的数据方式和普通的通过ODBC调用数据库的方式有一些不同的地方.下面将介绍如何通过ODBC在ASP中使用Excel的数据. 在使用的过程中,要注意的是你需要使用的ODBC驱动为:Microsoft ODBC Driver for Excel. 下面给出一个例子来具体说明如何调用的过程:1.在Excel的电子表格中新建一个叫Range的表单a)在Excel文件ADOtest.xls中

winform中 将DataGrid中的数据导入Excel中,并显示Excel应用程序

datagrid|excel|程序|数据|显示    /// <summary>        /// 将DataGrid中的数据导入Excel中,并显示Excel应用程序,        /// 注意调用该方法必须有安装Excel 2000应用程序,并且假定DataGrid中绑定的是一DataSet        /// </summary>        /// <param name="grid"></param>        /

请问制作的软件中输出数据到excel中能不能产生两个独立的画面?请问怎么做?谢谢

问题描述 请问制作的软件中输出数据到excel中能不能产生两个独立的画面?请问怎么做?谢谢 请问制作的软件中输出数据到excel中能不能产生两个独立的画面?请问怎么做?谢谢 解决方案 你说的画面是sheet吧 http://www.cnblogs.com/dyllove98/archive/2013/08/06/3241515.html

VBA读取word中的内容到Excel中

原文:VBA读取word中的内容到Excel中 Public Sub Duqu()      Dim myFile As String     Dim docApp As Word.Application     Dim docRange As Word.Range     myFile = ThisWorkbook.Path & "\Word文档的名字"    '指定Word文档     Set docApp = New Word.Application     docApp

在javaweb项目中 我要遍历项目中的产品图片,但是数据库访问的是URL,优化ftp上的图片

问题描述 在javaweb项目中 我要遍历项目中的产品图片,但是数据库访问的是URL,优化ftp上的图片 在javaweb项目中 我要遍历项目中的产品图片,但是数据库访问的是URL,我现在想优化这些图片,从ftp上遍历的时候就直接给图片压缩,只减少图片的KB,但是不能减少尺寸. 这样的需求 我该如何用java代码实现啊 求教育啊!!! 解决方案 没有必要,你的web server开启gzip压缩就可以了.效果差不多,不用任何代码. 解决方案二: http://www.mycodes.net/78

怎么控制GridView中某个字段字符串长度限制在20个全角字符内

问题描述 怎么控制GridView中某个字段字符串长度限制在20个全角字符内,超过就使用省略号,谢谢 解决方案 解决方案二:///<summary>///截断字符串,长出部分用...代替///</summary>///<paramname="in_str"></param>///<paramname="short_len"></param>///<returns></retur

java读取文件中的内容写入excel中

public static void writeXls() {//把读取的文件写入到excel文件中   int i = 0;   try {    File file = new File("d:/cn.csv");    if (file.isFile() && file.exists()) {     InputStreamReader read = new InputStreamReader(       new FileInputStream(file));

用自定义函数替换SQL中的全角数字为半角数字

函数 在我们使用MSSQL的时候,有时表中有一些是全角的数字,但我们的系统不能够正确的使用它们,这时我们要把他们替换为半角数字.而SQL自己好像没有这个函数. 没有,我们自己动手: 下面就是我自己写的一个函数,当然,我的数据量小,没有考虑性能! --  把全角数据转换成半角数字(注意,这个只能转换全是全角的,在第一个半角数据时返回)--  公司:石家庄创联科技--  编写:牛昆亮  QQ:273352165 create function  ufn_convertWideNumericToAns