C# NPOI Excel单元格样式修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14

// 创建样式
ICellStyle headerCellStyle = workbook.CreateCellStyle();
// 设置填充模式
headerCellStyle.FillPattern = FillPattern.SolidForeground;
// 填充颜色
headerCellStyle.FillForegroundColor = IndexedColors.Tan.Index;


// 设置边框
headerCellStyle.BorderBottom =
headerCellStyle.BorderRight =
headerCellStyle.BorderTop =
headerCellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;

C# NPOI 添加修改Excel文件属性

HSSFWorkbook(.xls)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
HSSFWorkbook workbook = new HSSFWorkbook();

DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
dsi.Company = "Company";
dsi.Category = "Category";
dsi.Manager = "Manager";

SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
si.Subject = "Subject";
si.Title = "Title";
si.ApplicationName = "ApplicationName";
si.Author = "Author";
si.LastAuthor = "LastAuthor";
si.Comments = "Comments";
si.CreateDateTime = DateTime.Now.AddMonths(-2);

workbook.DocumentSummaryInformation = dsi;
workbook.SummaryInformation = si;

XSSFWorkbook(.xlsx)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

XSSFWorkbook workbook = new XSSFWorkbook();

POIXMLProperties xmlprops = workbook.GetProperties();
xmlprops.CoreProperties.Creator = "Creator";
xmlprops.CoreProperties.Subject = "Subject";
xmlprops.CoreProperties.Category = "Category";
xmlprops.CoreProperties.Title = "Title";
xmlprops.CoreProperties.ContentStatus = "ContentStatus";
xmlprops.CoreProperties.ContentType = "ContentType";
xmlprops.CoreProperties.Description = "Description";
xmlprops.CoreProperties.Identifier = "Identifier";
xmlprops.CoreProperties.Keywords = "Keywords";
xmlprops.CoreProperties.Revision = "Revision";

CT_ExtendedProperties ctprops = xmlprops.ExtendedProperties.GetUnderlyingProperties();
ctprops.Application = ("Application");
ctprops.Company = ("Company");

Easy HTTP–not Just a Catchy Name

I was recently referred to EasyHTTP by it’s creator, Hadi Hariri. Hadi was looking at some code I had sent him regarding my work with the TeamCity REST API and thought that things could be a little easier and less verbose.

我最近被它的创造者Hadi Hariri称为EasyHTTP

Hadi正在查看我发给他的关于我使用TeamCity REST API的一些代码,并认为事情可能会更简单,更简洁。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class Caller
{
public Uri CreateUri(string relativeUrl)
{
//url build here
}
public HttpWebRequest CreateWebRequest(Uri uri)
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri);
webRequest.Credentials = new NetworkCredential(_configuration.UserName,
_configuration.Password);
webRequest.Proxy = null;
return (webRequest);
}
public string Request(Uri uri)
{
HttpWebRequest webRequest = CreateWebRequest(uri);
webRequest.Accept = "application/json";
string output = string.Empty;
try
{
using (var response = webRequest.GetResponse())
{
using (var stream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1252)))
{
output = stream.ReadToEnd();
}
}
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
using (var stream = new StreamReader(ex.Response.GetResponseStream()))
{
output = stream.ReadToEnd();
}
}
else if (ex.Status == WebExceptionStatus.Timeout)
{
output = "Request timeout is expired.";
}
}
return output;
}
}

In summary my application creates a new HttpWebRequest passing in the request type as a magic string. It opens a stream to read the JSON response and that JSON is then de-serialised to an entity. It was very messy. In order to call this class from my application I would have had to do the follow:

查看更多

Easyhttp by Hadi Hariri

最近,我编写的大部分代码都以某种方式与HTTP服务器进行通信。 无论是“ReSTful”服务还是“Wanna-be-ReSTful”服务,我都需要进行GET,POST,PUT等操作并与JSON配合。

在几次围绕WebRequest进行简单封装之后,我决定是时候将其正式化。
于是就有了EasyHttp
它已经在GitHub上待了很长一段时间,我和其他人一直在将它用于几个项目,所以我认为它已经到了让更多人尝试的时候了,如果他们愿意的话。

描述EasyHttp功能的最佳方法就是代码

1
2
3
4
5
6
var http = new HttpClient
{
Request = { Accept = HttpContentTypes.ApplicationJson }
}
var response = http.Get("http://domain.com/customer/25");
var customer = response.StaticBody<Customer>();

代码描述:我们创建了一个HttpClient实例,并指示我们接受内容类型application/json(因为在这种情况下,服务器返回给我们的是json)。 通过指定此Accept头,EasyHttp知道如何解码请求(request)。

查看更多

EasyHTTP - Delete

根据W3,Delete方法执行以下操作。

DELETE方法请求源服务器删除Request-URI标识的资源。 可以通过源服务器上的人为干预(或其他方式)覆盖此方法。 即使从源服务器返回的状态代码表明操作已成功完成,也无法保证客户端已执行该操作。 但是,服务器不应该指示成功,除非在给出响应时,它打算删除资源或将其移动到不可访问的位置。

有几种方法可以使用Easyhttp进行删除(Delete)。

查看更多

EasyHTTP - Head

根据W3,Head方法执行以下操作。

HEAD方法与GET相同,只是服务器不能在响应中返回消息体。 响应HEAD请求的HTTP头中包含的元信息应该与响应GET请求时发送的信息相同。 该方法可用于获得关于请求所暗示的实体的元信息,而无需转移实体主体本身。 此方法通常用于测试超文本链接的有效性,可访问性和最近的修改。

转到Get方法获取语法。 只需像这样替换Head方法。

查看更多

EasyHTTP - PutFile

要将文件上载到Web服务器上的资源,可以使用HttpClient对象的PutFile方法。

为此,您需要传递文件所在的uri。 本地文件的路径。 以及您要上传的内容类型(contentype),所有字符串。

1
2
3
var httpClient = new HttpClient();
var imageFile = Path.Combine("Helpers", "test.jpg");
httpClient.PutFile(string.Format("{0}/fileupload/test.jpg", "http://localhost:16000"), imageFile, "image/jpeg");